summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ev.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ev.c b/ev.c
index 3518002..2084805 100644
--- a/ev.c
+++ b/ev.c
@@ -1344,7 +1344,7 @@ ev_loop (EV_P_ int flags)
call_pending (EV_A); /* in case we recurse, ensure ordering stays nice and clean */
- while (activecnt)
+ for (;;)
{
#ifndef _WIN32
if (expect_false (curpid)) /* penalise the forking check even more */
@@ -1372,6 +1372,9 @@ ev_loop (EV_P_ int flags)
call_pending (EV_A);
}
+ if (expect_false (!activecnt))
+ break;
+
/* we might have forked, so reify kernel state if necessary */
if (expect_false (postfork))
loop_fork (EV_A);