The whole point of sigsuspend and pause is to wait until a signal has
arrived, and then return *after* it has been triggered. Currently
delayed/"safe" signals prevent that from happening, which might cause
race conditions.
This patch prevents that (as far as possible) by running the signal
handlers ASAP.
RETVAL = ix ? sigsuspend(sigset) : sigpending(sigset);
OUTPUT:
RETVAL
+ CLEANUP:
+ PERL_ASYNC_CHECK();
SysRet
sigprocmask(how, sigset, oldsigset = 0)
SysRet
pause()
+ CLEANUP:
+ PERL_ASYNC_CHECK();
SysRet
setgid(gid)