Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tcp/ncsim.c

    r69a93df7 r257feec  
    4444#include <io/log.h>
    4545#include <stdlib.h>
    46 #include <thread.h>
     46#include <fibril.h>
    4747#include "conn.h"
    4848#include "ncsim.h"
     
    7474        link_t *link;
    7575
    76         log_msg(LVL_DEBUG, "tcp_ncsim_bounce_seg()");
     76        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_ncsim_bounce_seg()");
    7777        tcp_rqueue_bounce_seg(sp, seg);
    7878        return;
     
    8080        if (0 /*random() % 4 == 3*/) {
    8181                /* Drop segment */
    82                 log_msg(LVL_ERROR, "NCSim dropping segment");
     82                log_msg(LOG_DEFAULT, LVL_ERROR, "NCSim dropping segment");
    8383                tcp_segment_delete(seg);
    8484                return;
     
    8787        sqe = calloc(1, sizeof(tcp_squeue_entry_t));
    8888        if (sqe == NULL) {
    89                 log_msg(LVL_ERROR, "Failed allocating SQE.");
     89                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed allocating SQE.");
    9090                return;
    9191        }
     
    119119}
    120120
    121 /** Network condition simulator handler thread. */
    122 static void tcp_ncsim_thread(void *arg)
     121/** Network condition simulator handler fibril. */
     122static int tcp_ncsim_fibril(void *arg)
    123123{
    124124        link_t *link;
     
    126126        int rc;
    127127
    128         log_msg(LVL_DEBUG, "tcp_ncsim_thread()");
    129 
     128        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_ncsim_fibril()");
    130129
    131130        while (true) {
     
    139138                        sqe = list_get_instance(link, tcp_squeue_entry_t, link);
    140139
    141                         log_msg(LVL_DEBUG, "NCSim - Sleep");
     140                        log_msg(LOG_DEFAULT, LVL_DEBUG, "NCSim - Sleep");
    142141                        rc = fibril_condvar_wait_timeout(&sim_queue_cv,
    143142                            &sim_queue_lock, sqe->delay);
     
    147146                fibril_mutex_unlock(&sim_queue_lock);
    148147
    149                 log_msg(LVL_DEBUG, "NCSim - End Sleep");
     148                log_msg(LOG_DEFAULT, LVL_DEBUG, "NCSim - End Sleep");
    150149                tcp_rqueue_bounce_seg(&sqe->sp, sqe->seg);
    151150                free(sqe);
    152151        }
     152
     153        /* Not reached */
     154        return 0;
    153155}
    154156
    155 /** Start simulator handler thread. */
    156 void tcp_ncsim_thread_start(void)
     157/** Start simulator handler fibril. */
     158void tcp_ncsim_fibril_start(void)
    157159{
    158         thread_id_t tid;
    159         int rc;
     160        fid_t fid;
    160161
    161         log_msg(LVL_DEBUG, "tcp_ncsim_thread_start()");
     162        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_ncsim_fibril_start()");
    162163
    163         rc = thread_create(tcp_ncsim_thread, NULL, "ncsim", &tid);
    164         if (rc != EOK) {
    165                 log_msg(LVL_ERROR, "Failed creating ncsim thread.");
     164        fid = fibril_create(tcp_ncsim_fibril, NULL);
     165        if (fid == 0) {
     166                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed creating ncsim fibril.");
    166167                return;
    167168        }
     169
     170        fibril_add_ready(fid);
    168171}
    169172
Note: See TracChangeset for help on using the changeset viewer.