Browse Source

*** empty log message ***

master
Marc Alexander Lehmann 14 years ago
parent
commit
48b99870c8
  1. 2
      Changes
  2. 11
      ev.c

2
Changes

@ -4,6 +4,8 @@ Revision history for libev, a high-performance and full-featured event loop.
- fix a 64 bit overflow issue in the select backend,
by using fd_mask instead of int for the mask.
- rename internal sighandler to avoid clash with very old perls.
- entering ev_loop will not clear the ONESHOT or NONBLOCKING
flags of any outer loops anymore.
- add ev_async_pending.
3.1 Thu Mar 13 13:45:22 CET 2008

11
ev.c

@ -1544,9 +1544,7 @@ static int loop_done;
void
ev_loop (EV_P_ int flags)
{
loop_done = flags & (EVLOOP_ONESHOT | EVLOOP_NONBLOCK)
? EVUNLOOP_ONE
: EVUNLOOP_CANCEL;
loop_done = EVUNLOOP_CANCEL;
call_pending (EV_A); /* in case we recurse, ensure ordering stays nice and clean */
@ -1652,9 +1650,12 @@ ev_loop (EV_P_ int flags)
queue_events (EV_A_ (W *)checks, checkcnt, EV_CHECK);
call_pending (EV_A);
}
while (expect_true (activecnt && !loop_done));
while (expect_true (
activecnt
&& !loop_done
&& !(flags & (EVLOOP_ONESHOT | EVLOOP_NONBLOCK))
));
if (loop_done == EVUNLOOP_ONE)
loop_done = EVUNLOOP_CANCEL;

Loading…
Cancel
Save