diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2003-02-24 20:04:36 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2003-02-24 20:04:36 +0000 |
commit | 4ffa73a366885f682ceccdeee45e43075e0c312e (patch) | |
tree | 446e9e27c998f37145504dca4df0241df75e5f90 /pp_sys.c | |
parent | 2fb44b4522b8956ab337b2f83a5fe619b0773788 (diff) | |
download | perl-4ffa73a366885f682ceccdeee45e43075e0c312e.tar.gz |
PERL_SIGNALS=unsafe enables the old unsafe/immediate signals.
p4raw-id: //depot/perl@18766
Diffstat (limited to 'pp_sys.c')
-rw-r--r-- | pp_sys.c | 26 |
1 files changed, 14 insertions, 12 deletions
@@ -3963,13 +3963,14 @@ PP(pp_wait) Pid_t childpid; int argflags; -#ifdef PERL_OLD_SIGNALS - childpid = wait4pid(-1, &argflags, 0); -#else - while ((childpid = wait4pid(-1, &argflags, 0)) == -1 && errno == EINTR) { - PERL_ASYNC_CHECK(); + if (PL_signals & PERL_SIGNALS_UNSAFE_FLAG) + childpid = wait4pid(-1, &argflags, 0); + else { + while ((childpid = wait4pid(-1, &argflags, 0)) == -1 && + errno == EINTR) { + PERL_ASYNC_CHECK(); + } } -#endif # if defined(USE_ITHREADS) && defined(PERL_IMPLICIT_SYS) /* 0 and -1 are both error returns (the former applies to WNOHANG case) */ STATUS_NATIVE_SET((childpid && childpid != -1) ? argflags : -1); @@ -3993,13 +3994,14 @@ PP(pp_waitpid) optype = POPi; childpid = TOPi; -#ifdef PERL_OLD_SIGNALS - childpid = wait4pid(childpid, &argflags, optype); -#else - while ((childpid = wait4pid(childpid, &argflags, optype)) == -1 && errno == EINTR) { - PERL_ASYNC_CHECK(); + if (PL_signals & PERL_SIGNALS_UNSAFE_FLAG) + childpid = wait4pid(childpid, &argflags, optype); + else { + while ((childpid = wait4pid(childpid, &argflags, optype)) == -1 && + errno == EINTR) { + PERL_ASYNC_CHECK(); + } } -#endif # if defined(USE_ITHREADS) && defined(PERL_IMPLICIT_SYS) /* 0 and -1 are both error returns (the former applies to WNOHANG case) */ STATUS_NATIVE_SET((childpid && childpid != -1) ? argflags : -1); |