src/lib/pipeline.c 1.22

1.22 2009/04/05 18:10:00 markd
ignore SIGPIPE in child to avoid timing issue on process completion
Index: src/lib/pipeline.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/lib/pipeline.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -b -B -U 4 -r1.21 -r1.22
--- src/lib/pipeline.c	7 Feb 2009 00:14:20 -0000	1.21
+++ src/lib/pipeline.c	5 Apr 2009 18:10:00 -0000	1.22
@@ -280,8 +280,11 @@
 if ((proc->pid = fork()) < 0)
     errnoAbort("can't fork");
 if (proc->pid == 0)
     {
+    // child
+    if (signal(SIGPIPE, SIG_IGN) == SIG_ERR)
+        errnoAbort("error ignoring SIGPIPE");
     if (otherEndBuf != NULL)
         plProcMemWrite(proc, procStdoutFd, stderrFd, otherEndBuf, otherEndBufSize);
     else
         plProcExecChild(proc, procStdinFd, procStdoutFd, stderrFd);