diff options
author | root <root> | 2008-03-31 01:14:12 +0000 |
---|---|---|
committer | root <root> | 2008-03-31 01:14:12 +0000 |
commit | d612b5fe726a7057391896d8863d85f8c365ae1b (patch) | |
tree | 282313cc61ca4812a633c933c543be29235f2a61 /ev.pod | |
parent | 736d5f9cbf1bdfe02ce49f21a081af49a86d591f (diff) |
*** empty log message ***
Diffstat (limited to 'ev.pod')
-rw-r--r-- | ev.pod | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -1087,6 +1087,18 @@ C<ev_default_fork ()> or C<ev_loop_fork ()> after a fork in the child, enable C<EVFLAG_FORKCHECK>, or resort to C<EVBACKEND_SELECT> or C<EVBACKEND_POLL>. +=head3 The special problem of SIGPIPE + +While not really specific to libev, it is easy to forget about SIGPIPE: +when reading from a pipe whose other end has been closed, your program +gets send a SIGPIPE, which, by default, aborts your program. For most +programs this is sensible behaviour, for daemons, this is usually +undesirable. + +So when you encounter spurious, unexplained daemon exits, make sure you +ignore SIGPIPE (and maybe make sure you log the exit status of your daemon +somewhere, as that would have given you a big clue). + =head3 Watcher-Specific Functions |