Re: interrupting system() with signal depends on signal handler
Steffen Ullrich [Tue, 26 Feb 2008 19:43:00 +0000 (20:43 +0100)]
Message-ID:  <47C45DB4.9060306@gmx.net>

p4raw-id: //depot/perl@33408

util.c

diff --git a/util.c b/util.c
index 36166fb..82f147e 100644 (file)
--- a/util.c
+++ b/util.c
@@ -3011,6 +3011,7 @@ Perl_wait4pid(pTHX_ Pid_t pid, int *statusp, int flags)
 #endif
     if (result < 0 && errno == EINTR) {
        PERL_ASYNC_CHECK();
+       errno = EINTR; /* reset in case a signal handler changed $! */
     }
     return result;
 }