]> git.llucax.com Git - software/libev.git/blobdiff - ev.c
*** empty log message ***
[software/libev.git] / ev.c
diff --git a/ev.c b/ev.c
index 208480582033d76b2952e4bc160454d076e0093d..221da5941112d05de049c26c62740004e32c158a 100644 (file)
--- 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 */
 
 
   call_pending (EV_A); /* in case we recurse, ensure ordering stays nice and clean */
 
-  for (;;)
+  while (expect_false (!activecnt))
     {
 #ifndef _WIN32
       if (expect_false (curpid)) /* penalise the forking check even more */
     {
 #ifndef _WIN32
       if (expect_false (curpid)) /* penalise the forking check even more */
@@ -1386,7 +1386,7 @@ ev_loop (EV_P_ int flags)
       {
         ev_tstamp block;
 
       {
         ev_tstamp block;
 
-        if (flags & EVLOOP_NONBLOCK || idlecnt)
+        if (expect_false (flags & EVLOOP_NONBLOCK || idlecnt || !activecnt))
           block = 0.; /* do not block at all */
         else
           {
           block = 0.; /* do not block at all */
         else
           {