chiark / gitweb /
prefork-interp: diagrams
[chiark-utils.git] / perl / Prefork.pm
index f70edd451dfddad805d601ae1407b366aa8b17e4..2ee8e57e3d5fbb2a658b505bf82c8e51888100e7 100644 (file)
@@ -9,7 +9,7 @@ use strict;
 use Carp;
 use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
 use IO::FDPass;
-use POSIX qw(_exit setsid :sys_wait_h :errno_h);
+use POSIX qw(_exit setsid :sys_wait_h :errno_h :signal_h);
 use Sys::Syslog qw(openlog syslog LOG_INFO LOG_ERR LOG_WARNING);
 
 our $logger;
@@ -224,7 +224,7 @@ sub initialisation_complete {
       my $got = waitpid -1, ($full ? 0 : WNOHANG);
       $got >= 0 or fail_log("failed to wait for monitor(s): $!");
       if ($got) {
-       if ($?) {
+       if ($? && $? != SIGPIPE) {
          syslog(LOG_WARNING,
  "$0 prefork [$$]: monitor process [$got] failed with wait status $?");
        }