X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fevent.c;h=245e39ecb45f34a62d848071a7b251880a821e6d;hb=6406d4d35d5b5d56e9359f00fe38e25686f93821;hp=61e6d8d7365893f53fffe50c4c6e07ee3b46ca22;hpb=3bcd5ec746a5575c0c66f8b34922c038eb363b0a;p=meshlink diff --git a/src/event.c b/src/event.c index 61e6d8d7..245e39ec 100644 --- a/src/event.c +++ b/src/event.c @@ -108,15 +108,8 @@ void io_del(event_loop_t *loop, io_t *io) { } void timeout_add(event_loop_t *loop, timeout_t *timeout, timeout_cb_t cb, void *data, struct timeval *tv) { - if(!timeout->cb) - timeout->tv = (struct timeval) { - 0, 0 - }; - timeout->cb = cb; - timeout->data = data; - timeout->node.data = timeout; timeout_set(loop, timeout, tv); @@ -225,6 +218,7 @@ bool event_loop_run(event_loop_t *loop, pthread_mutex_t *mutex) { fd_set readable; fd_set writable; + while(loop->running) { gettimeofday(&loop->now, NULL); struct timeval diff, it, *tv = NULL; @@ -274,6 +268,8 @@ bool event_loop_run(event_loop_t *loop, pthread_mutex_t *mutex) { pthread_mutex_lock(mutex); } + gettimeofday(&loop->now, NULL); + if(n < 0) { if(sockwouldblock(errno)) { continue;