diff options
author | root <root> | 2009-08-28 08:48:42 +0000 |
---|---|---|
committer | root <root> | 2009-08-28 08:48:42 +0000 |
commit | d107d3420dd9583f012d09c722df9c1501ce8282 (patch) | |
tree | 95c1dd37c81c203cd5275d8f4af08e4315069373 | |
parent | 56ca532b0e15ad34b53ae035be123fb71d1106a5 (diff) |
ugh
-rw-r--r-- | ev.pod | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -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 |