diff options
-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 |