]> 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 f813e58ae9dcbff1d4e5ae5e3503f95ff0c3dcd3..1cafd9b04567cf7c5a4bda3974a2f4e8938ec160 100644 (file)
--- a/ev.c
+++ b/ev.c
@@ -489,6 +489,7 @@ siginit (EV_P)
 
   ev_io_set (&sigev, sigpipe [0], EV_READ);
   ev_io_start (&sigev);
 
   ev_io_set (&sigev, sigpipe [0], EV_READ);
   ev_io_start (&sigev);
+  ev_unref (EV_A); /* child watcher should not keep loop alive */
 }
 
 /*****************************************************************************/
 }
 
 /*****************************************************************************/
@@ -641,6 +642,7 @@ ev_init (EV_P_ int methods)
           ev_signal_init (&childev, childcb, SIGCHLD);
           ev_set_priority (&childev, EV_MAXPRI);
           ev_signal_start (EV_A_ &childev);
           ev_signal_init (&childev, childcb, SIGCHLD);
           ev_set_priority (&childev, EV_MAXPRI);
           ev_signal_start (EV_A_ &childev);
+          ev_unref (EV_A); /* child watcher should not keep loop alive */
 #endif
         }
     }
 #endif
         }
     }
@@ -913,7 +915,6 @@ 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);
-      printf ("activecnt %d\n", activecnt);//D
     }
   while (activecnt && !loop_done);
 
     }
   while (activecnt && !loop_done);