X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=inline;f=src%2Fevent.c;h=63657a5fde4d9505079eb34e24c2bf2ee57eb393;hb=eff41a69e1976fd521b4c524bed86b1bc095b10f;hp=065f1b5eaf5a52710f8c9412ddccd03b656e8f90;hpb=93f89bcae11e8d250831896bc5694ee8bd2ad22b;p=meshlink diff --git a/src/event.c b/src/event.c index 065f1b5e..63657a5f 100644 --- a/src/event.c +++ b/src/event.c @@ -26,9 +26,6 @@ #include "utils.h" #include "xalloc.h" -event_loop_t *loop; -struct timeval now; - static int io_compare(const io_t *a, const io_t *b) { return a->fd - b->fd; } @@ -139,6 +136,14 @@ static void pipe_init(event_loop_t *loop) { io_add(loop, &loop->signalio, signalio_handler, NULL, loop->pipefd[0], IO_READ); } +void signal_trigger(event_loop_t *loop, signal_t *sig) { + + uint8_t signum = sig->signum; + write(loop->pipefd[1], &signum, 1); + return; + +} + void signal_add(event_loop_t *loop, signal_t *sig, signal_cb_t cb, void *data, uint8_t signum) { if(sig->cb) return; @@ -171,7 +176,6 @@ bool event_loop_run(event_loop_t *loop) { while(loop->running) { gettimeofday(&loop->now, NULL); - now = loop->now; struct timeval diff, *tv = NULL; while(loop->timeouts.head) { @@ -237,6 +241,7 @@ void event_loop_init(event_loop_t *loop) { loop->signals.compare = (splay_compare_t)signal_compare; loop->pipefd[0] = -1; loop->pipefd[1] = -1; + gettimeofday(&loop->now, NULL); } void event_loop_exit(event_loop_t *loop) {