summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ev.pod12
1 files changed, 12 insertions, 0 deletions
diff --git a/ev.pod b/ev.pod
index 752c52a..47204ab 100644
--- a/ev.pod
+++ b/ev.pod
@@ -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