summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes2
-rw-r--r--ev.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/Changes b/Changes
index a0a37f4..cf4715a 100644
--- a/Changes
+++ b/Changes
@@ -3,6 +3,8 @@ Revision history for libev, a high-performance and full-featured event loop.
TODO: ev_loop_wakeup
4.10
+ - fix a race where the workaround against the epoll fork bugs
+ caused signals to not be handled anymore.
- correct backend_fudge for most backends, and implement a windows
specific workaround to avoid looping because we call both
select and Sleep, both with different time resolutions.
diff --git a/ev.c b/ev.c
index a5fee54..66f6459 100644
--- a/ev.c
+++ b/ev.c
@@ -1522,7 +1522,8 @@ ev_feed_signal (int signum)
return;
#endif
- evpipe_init (EV_A);
+ if (!ev_active (&pipe_w))
+ return;
signals [signum - 1].pending = 1;
evpipe_write (EV_A_ &sig_pending);