summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorRadu Greab <radu@netsoft.ro>2001-01-05 23:04:33 +0200
committerJarkko Hietaniemi <jhi@iki.fi>2001-01-05 22:44:08 +0000
commitfaa466a70c12a1db89a71755b531f086987f0862 (patch)
treeb2f4752da340340731e4a02f500108cd07f76096 /util.c
parent40d4dc3e90c1c3b3062669c126a23ad83b2ca878 (diff)
downloadperl-faa466a70c12a1db89a71755b531f086987f0862.tar.gz
Re: [ID 20010105.002] close() on process filehandle leaves defunct process
Message-ID: <14934.6849.742435.23178@ix.netsoft.ro> p4raw-id: //depot/perl@8340
Diffstat (limited to 'util.c')
-rw-r--r--util.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/util.c b/util.c
index 60e82e3550..1261b98331 100644
--- a/util.c
+++ b/util.c
@@ -2455,8 +2455,12 @@ Perl_my_popen(pTHX_ char *cmd, char *mode)
PerlLIO_close(pp[0]);
did_pipes = 0;
if (n) { /* Error */
+ int pid2, status;
if (n != sizeof(int))
Perl_croak(aTHX_ "panic: kid popen errno read");
+ do {
+ pid2 = wait4pid(pid, &status, 0);
+ } while (pid2 == -1 && errno == EINTR);
errno = errkid; /* Propagate errno from kid */
return Nullfp;
}