diff options
| author | root <root> | 2008-02-19 19:01:12 +0000 | 
|---|---|---|
| committer | root <root> | 2008-02-19 19:01:12 +0000 | 
| commit | 0c8e14659f11acebbf5d102234a3d9d0e94b00a3 (patch) | |
| tree | 2aa8cdda7524622d1a4360c5b18237dff9b636f8 | |
| parent | 091617c5e9d95bebfbb7f57fa1faeb22fcb57feb (diff) | |
steting got_:async when we never reset it is harmful as it blocks signal handling
| -rw-r--r-- | Changes | 2 | ||||
| -rw-r--r-- | ev.c | 9 | 
2 files changed, 6 insertions, 5 deletions
| @@ -1,7 +1,7 @@  Revision history for libev, a high-performance and full-featured event loop  3.1 -	- implement ev_asnc watchers. +	- implement ev_async watchers.          - only initialise signal pipe on demand.  	- make use of sig_atomic_t configurable. @@ -813,9 +813,6 @@ 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);      }  } @@ -1223,7 +1220,11 @@ loop_fork (EV_P)    if (ev_is_active (&pipeev))      {        /* this "locks" the handlers against writing to the pipe */ -      gotsig = gotasync = 1; +      /* while we modify the fd vars */ +      gotsig = 1; +#if EV_ASYNC_ENABLE +      gotasync = 1; +#endif        ev_ref (EV_A);        ev_io_stop (EV_A_ &pipeev); | 
