09/02/07, Merijn Broeren <merijnb (AT) iloquent (DOT) comwrote:
I can see the C code that causes the behavior in mg.c:Perl_sighandler.
The G_EVAL flag was added in the call to call_sv(). The function should
enter scope and localize ERRSV before call_sv, and copy ERRSV and leave
scope thereafter. Then it should test and (if true) die with the copy,
rather than ERRSV, after the special processing that motivated the use
of G_EVAL.
Is this a bug? is it a feature?
What if there is a die() from within the signal handler ? Shouldn't $@
be propagated ? (not tested with older perls)
BTW, this was added by this change: