From 0c8e14659f11acebbf5d102234a3d9d0e94b00a3 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 19 Feb 2008 19:01:12 +0000 Subject: steting got_:async when we never reset it is harmful as it blocks signal handling --- Changes | 2 +- ev.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Changes b/Changes index 5fdbff8..e5d53d1 100644 --- a/Changes +++ b/Changes @@ -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. diff --git a/ev.c b/ev.c index fada483..6d5f18a 100644 --- a/ev.c +++ b/ev.c @@ -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); -- cgit v1.2.3