diff options
Diffstat (limited to 'ev.c')
-rw-r--r-- | ev.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -813,6 +813,9 @@ evpipe_init (EV_P) ev_io_set (&pipeev, evpipe [0], EV_READ); ev_io_start (EV_A_ &pipeev); ev_unref (EV_A); /* watcher should not keep loop alive */ + + /* in case we received the signal before we had the chance of installing a handler */ + ev_feed_event (EV_A_ &pipeev, 0); } } @@ -840,7 +843,7 @@ pipecb (EV_P_ ev_io *iow, int revents) read (evpipe [0], &dummy, 1); } - if (gotsig) + if (gotsig && ev_is_default_loop (EV_A)) { int signum; gotsig = 0; |