summaryrefslogtreecommitdiff
path: root/pp_sys.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2000-06-01 13:03:56 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2000-06-01 13:03:56 +0000
commit64ca3a6502a07a2652bb713108527be0e9066745 (patch)
treebdae1e21c52d16e08db1307a9a7bf06bd00136a6 /pp_sys.c
parent53fe373b05b06f68094ed67e5c78b4dda7f0d5b8 (diff)
downloadperl-64ca3a6502a07a2652bb713108527be0e9066745.tar.gz
Signals-be-gone for microperl.
p4raw-id: //depot/cfgperl@6193
Diffstat (limited to 'pp_sys.c')
-rw-r--r--pp_sys.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/pp_sys.c b/pp_sys.c
index 97cd15b77f..1ea47cf572 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -3749,7 +3749,7 @@ PP(pp_system)
}
}
PERL_FLUSHALL_FOR_CHILD;
-#if (defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && !defined(OS2) && !defined(__CYGWIN__)
+#if (defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && !defined(OS2) && !defined(__CYGWIN__) || defined(PERL_MICRO)
if (PerlProc_pipe(pp) >= 0)
did_pipes = 1;
while ((childpid = vfork()) == -1) {
@@ -3768,13 +3768,17 @@ PP(pp_system)
if (childpid > 0) {
if (did_pipes)
PerlLIO_close(pp[1]);
+#ifndef PERL_MICRO
rsignal_save(SIGINT, SIG_IGN, &ihand);
rsignal_save(SIGQUIT, SIG_IGN, &qhand);
+#endif
do {
result = wait4pid(childpid, &status, 0);
} while (result == -1 && errno == EINTR);
+#ifndef PERL_MICRO
(void)rsignal_restore(SIGINT, &ihand);
(void)rsignal_restore(SIGQUIT, &qhand);
+#endif
STATUS_NATIVE_SET(result == -1 ? -1 : status);
do_execfree(); /* free any memory child malloced on vfork */
SP = ORIGMARK;