Eric Frazier wrote:
...
> But then I found I was using 5.8.. Thanks to a guy on comp.lang.perl.misc I
> know that there is a change in how signals are handled, they call it
> deferred signal handling because Perl now is suppose to wait until the
> Interpeter is in a safe state. As I understand it this might avoid some
> things like core dumps or other errors related to dieing while trying to do
> something besides dieing. 

Mostly, yes. Look at the perldelta manpage that is distributed with perl
5.8.0, section "Safe Signals".

If you want to restore the 5.6-ish "unsafe" signal handling, this is not
possible with 5.8.0 :(. But, as it has been acknowledged that this unsafe
behaviour is desirable in some cases, it will be possible with perl
5.8.1.

You can grab a 5.8.1 release candidate 4 from CPAN :
    http://search.cpan.org/~jhi/
(RC5 should be out in a few days)
and see with it if using unsafe signal handlers solves your problem.
You can enable them with the PERL_SIGNALS environment variable.
Here's the relevant part of the perlrun manpage that comes with perl
5.8.1 RC4 :

    =item PERL_SIGNALS

    In Perls 5.8.1 and later.  If set to C<unsafe> the pre-Perl-5.8.0
    signals behaviour (immediate but unsafe) is restored.  If set to
    C<safe> the safe (or deferred) signals are used.
    See L<perlipc/"Deferred Signals (Safe signals)">.

HTH.

Reply via email to