summaryrefslogtreecommitdiff
path: root/ev.pod
diff options
context:
space:
mode:
authorroot <root>2008-03-31 01:14:12 +0000
committerroot <root>2008-03-31 01:14:12 +0000
commitd612b5fe726a7057391896d8863d85f8c365ae1b (patch)
tree282313cc61ca4812a633c933c543be29235f2a61 /ev.pod
parent736d5f9cbf1bdfe02ce49f21a081af49a86d591f (diff)
*** empty log message ***
Diffstat (limited to 'ev.pod')
-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