Hrm, here's some info from the perl FAQ:
Perl versions before 5.8 had in its C source code signal handlers
which
would catch the signal and possibly run a Perl function that you
had
set in %SIG. This violated the rules of signal handling at that
level
causing perl to dump core. Since version 5.8.0, perl looks at
%SIG
*after* the signal has been caught, rather than while it is being
caught.
> Is there an obvious/common explanation for this behaviour? If so, how
> does the Event module handle it?
If the above is true, I don't think Event does it any less correctly
than perl.
Thank you for your reply.
Just to clarify, I have not tried to use the Event module yet. I am trying to ascertain whether the method I am currently using (with $SIG{CHLD} set to the reaper function I listed) should be 100% reliable since perl 5.8.0, or whether there are any race conditions etc that might have a bearing.
If I am not using a reliable method, then I wondered whether Event would be better, and if so why.
The perl signal handling documentation that I have found to date does not explain the sporadic WEXITSTATUS($?)=255 WTERMSIG($?)=127 results that I have seen across a number of systems.
Regards,
Oliver
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.