X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fevent.c;h=60d357d4a09b6898ef0b0483c498e144d639bc50;hb=fd1cff6df23c3f16a46edaff8a52a7212914b2f0;hp=8f15ebeadd95a3e55fdaab74d812ca93fdd9cba2;hpb=ffbc99558cae4dff876645fe205349d8c4cd7acb;p=tinc diff --git a/src/event.c b/src/event.c index 8f15ebea..60d357d4 100644 --- a/src/event.c +++ b/src/event.c @@ -91,8 +91,8 @@ void io_add(io_t *io, io_cb_t cb, void *data, int fd, int flags) { #ifdef HAVE_MINGW void io_add_event(io_t *io, io_cb_t cb, void *data, WSAEVENT event) { - io_add(io, cb, data, -1, 0); io->event = event; + io_add(io, cb, data, -1, 0); } #endif @@ -256,10 +256,10 @@ bool event_loop(void) { fd_set writable; while(running) { - memcpy(&readable, &readfds, sizeof readable); - memcpy(&writable, &writefds, sizeof writable); struct timeval diff; struct timeval *tv = get_time_remaining(&diff); + memcpy(&readable, &readfds, sizeof readable); + memcpy(&writable, &writefds, sizeof writable); int fds = 0; @@ -294,9 +294,7 @@ bool event_loop(void) { DWORD timeout_ms = tv ? (tv->tv_sec * 1000 + tv->tv_usec / 1000 + 1) : WSA_INFINITE; if (!event_count) { - LeaveCriticalSection(&mutex); Sleep(timeout_ms); - EnterCriticalSection(&mutex); continue; } @@ -328,9 +326,7 @@ bool event_loop(void) { event_index++; } - LeaveCriticalSection(&mutex); DWORD result = WSAWaitForMultipleEvents(event_count, events, FALSE, timeout_ms, FALSE); - EnterCriticalSection(&mutex); WSAEVENT event; if (result >= WSA_WAIT_EVENT_0 && result < WSA_WAIT_EVENT_0 + event_count) @@ -362,12 +358,6 @@ bool event_loop(void) { return true; } -void event_flush_output(void) { - for splay_each(io_t, io, &io_tree) - if(io->flags & IO_WRITE) - io->cb(io->data, IO_WRITE); -} - void event_exit(void) { running = false; }