diff options
Diffstat (limited to 'ev.c')
-rw-r--r-- | ev.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -1162,7 +1162,7 @@ ev_loop (EV_P_ int flags) double block; loop_done = flags & (EVLOOP_ONESHOT | EVLOOP_NONBLOCK) ? 1 : 0; - do + while (activecnt) { /* queue check watchers (and execute them) */ if (expect_false (preparecnt)) @@ -1235,8 +1235,10 @@ ev_loop (EV_P_ int flags) queue_events (EV_A_ (W *)checks, checkcnt, EV_CHECK); call_pending (EV_A); + + if (loop_done) + break; } - while (activecnt && !loop_done); if (loop_done != 2) loop_done = 0; |