It looks like there's a bug in ev_loop_destroy(): when called for a
non-default loop, it would stop the signal handler for SIGCHLD, even
though the latter belongs to the default loop. The patched below
should fix it.

--- /home/denis/work/libev-cvs/ev.c     2012-05-10 20:47:37.064383729 +0400
+++ libev/ev.c  2012-05-11 18:35:09.651798327 +0400
@@ -2356,7 +2356,7 @@
 #endif

 #if EV_CHILD_ENABLE
-  if (ev_is_active (&childev))
+  if (ev_default_loop_ptr == EV_A && ev_is_active (&childev))
     {
       ev_ref (EV_A); /* child watcher */
       ev_signal_stop (EV_A_ &childev);

_______________________________________________
libev mailing list
libev@lists.schmorp.de
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev

Reply via email to