summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root>2013-04-28 12:45:20 +0000
committerroot <root>2013-04-28 12:45:20 +0000
commit29c469111f2145f78a7d11dc8bcdd39be697f66e (patch)
treee6e58468d0c3a7091f7dbe593ac3086de20410f3
parent1aa1aadea60855298e59aeb5555e71135086b348 (diff)
*** empty log message ***
-rw-r--r--Changes2
-rw-r--r--ev.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/Changes b/Changes
index 00a03f1..eb2465a 100644
--- a/Changes
+++ b/Changes
@@ -13,6 +13,8 @@ TODO: store loop pid_t and compare isndie signal handler,store 1 for same, 2 for
TODO: embed watchers need updating when fd changes
TODO: document portbaility requirements for atomic pointer access
+ - mark event pipe fd as cloexec after a fork (analyzed by Sami Farin).
+
4.15 Fri Mar 1 12:04:50 CET 2013
- destroying a non-default loop would stop the global waitpid
watcher (Denis Bilenko).
diff --git a/ev.c b/ev.c
index e5bd5ab..2fef11c 100644
--- a/ev.c
+++ b/ev.c
@@ -2106,8 +2106,6 @@ evpipe_init (EV_P)
fd_intern (fds [0]);
}
- fd_intern (fds [1]);
-
evpipe [0] = fds [0];
if (evpipe [1] < 0)
@@ -2123,6 +2121,8 @@ evpipe_init (EV_P)
close (fds [1]);
}
+ fd_intern (evpipe [1]);
+
ev_io_set (&pipe_w, evpipe [0] < 0 ? evpipe [1] : evpipe [0], EV_READ);
ev_io_start (EV_A_ &pipe_w);
ev_unref (EV_A); /* watcher should not keep loop alive */