22 lines
984 B
Plaintext
22 lines
984 B
Plaintext
Allows to enable unsafe signal delivery just for a short period of time.
|
|
|
|
In Perl 5.8.0 the so-called "safe signals" were introduced. This
|
|
means that Perl no longer handles signals immediately but instead
|
|
"between opcodes", when it is safe to do so. The earlier immediate
|
|
handling easily could corrupt the internal state of Perl, resulting in
|
|
mysterious crashes.
|
|
|
|
It's possible since perl 5.8.1 to globally disable this feature by
|
|
using the PERL_SIGNALS environment variables (as specified in
|
|
perlrun/PERL_SIGNALS); but there's no way to disable it locally, for a
|
|
short period of time. That's however something you might want to do,
|
|
if, for example, your Perl program calls a C routine that will
|
|
potentially run for a long time and for which you want to set a
|
|
timeout.
|
|
|
|
This module therefore allows you to define UNSAFE_SIGNALS blocks in
|
|
which signals will be handled "unsafely".
|
|
|
|
Note that, no matter how short you make the unsafe block, it will still
|
|
be unsafe. Use with caution.
|