On Thu, May 31, 2012 at 10:32 PM, Denis Bilenko <[email protected]> wrote: > On Thu, May 31, 2012 at 9:13 PM, Marc Lehmann <[email protected]> wrote: >>> The SIGCHLD is received, of course, but then libev fails to notify the >>> child watcher in a timely manner. Instead, it delays the notification >>> by 60 seconds (MAX_BLOCKTIME). >> >> I'll have a look, however, from looking at it, the test will always fail >> if the system is busy enough, and libev doesn't lose the signal, so >> behaviour is essentially correct. I'll see if this case can be optimised >> without drawback for other cases. > > Cool, thanks. > > There's another issue, in which libev does lose the signal forever. To > reproduce it, remove sleep(1) from the latest test program. > > The source of the issue is a race condition between ev_feed_signal and > loop_fork(). If I block signals at the beginning of loop_fork() and > unblock them at the end I have it fixed.
Marc, what's your resolution on this? Do you acknowledge this to be a bug in libev? Do you need help with fixing it? I'm asking about the issue where the event is lost forever, not the one where it's delayed for MAX_BLOCKTIME time. _______________________________________________ libev mailing list [email protected] http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev
