]> 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 0b2340e1f5108fade63acd58a61b5e533ff7c8fe..d04f786409cfee6846ba178c0cb92ef466351fce 100644 (file)
--- a/ev.c
+++ b/ev.c
@@ -1162,7 +1162,7 @@ ev_loop (EV_P_ int flags)
   double block;
   loop_done = flags & (EVLOOP_ONESHOT | EVLOOP_NONBLOCK) ? 1 : 0;
 
   double block;
   loop_done = flags & (EVLOOP_ONESHOT | EVLOOP_NONBLOCK) ? 1 : 0;
 
-  do
+  while (activecnt)
     {
       /* queue check watchers (and execute them) */
       if (expect_false (preparecnt))
     {
       /* 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);
         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;
 
   if (loop_done != 2)
     loop_done = 0;