summaryrefslogtreecommitdiff
path: root/ev.pod
diff options
context:
space:
mode:
authorroot <root>2009-08-28 08:48:42 +0000
committerroot <root>2009-08-28 08:48:42 +0000
commitd107d3420dd9583f012d09c722df9c1501ce8282 (patch)
tree95c1dd37c81c203cd5275d8f4af08e4315069373 /ev.pod
parent56ca532b0e15ad34b53ae035be123fb71d1106a5 (diff)
ugh
Diffstat (limited to 'ev.pod')
-rw-r--r--ev.pod12
1 files changed, 8 insertions, 4 deletions
diff --git a/ev.pod b/ev.pod
index 79fc81c..ebebd5b 100644
--- a/ev.pod
+++ b/ev.pod
@@ -2132,10 +2132,14 @@ This means that before calling C<exec> (from the child) you should reset
the signal mask to whatever "default" you expect (all clear is a good
choice usually).
-In current versions of libev, you can ensure that the signal mask is not
-blocking any signals (except temporarily, so thread users watch out) by
-specifying the C<EVFLAG_NOSIGNALFD> when creating the event loop. This is
-not guaranteed for future versions, however.
+The simplest way to ensure that the signal mask is reset in the child is
+to install a fork handler with C<pthread_atfork> that resets it. That will
+catch fork calls done by libraries (such as the libc) as well.
+
+In current versions of libev, you can also ensure that the signal mask is
+not blocking any signals (except temporarily, so thread users watch out)
+by specifying the C<EVFLAG_NOSIGNALFD> when creating the event loop. This
+is not guaranteed for future versions, however.
=head3 Watcher-Specific Functions and Data Members