Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Signals(3)	      User Contributed Perl Documentation	    Signals(3)

NAME
       Perl::Unsafe::Signals - Allow unsafe handling of	signals	in selected
       blocks

SYNOPSIS
	   use Perl::Unsafe::Signals;

	   # ... some code ...
	   local $SIG{ALRM} = sub { ...	};
	   alarm(60);
	   UNSAFE_SIGNALS {
	       # we want to interrupt this after one minute
	       call_some_long_XS_function();
	   };
	   alarm(0);
	   # ... continue ...

DESCRIPTION
       Quoting perl581delta:

       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
       "PERL_SIGNALS" in perlrun); 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.

NOTES
       This module used	to be a	source filter, but is no longer, thanks	to
       Scott McWhirter.

AUTHOR
       Copyright (c) 2005, 2015	Rafael Garcia-Suarez. This program is free
       software; you may redistribute it and/or	modify it under	the same terms
       as Perl itself.

       A git repository	for the	sources	is at
       <https://github.com/rgs/Perl-Unsafe-Signals>.

SEE ALSO
       perlrun,	perl581delta

perl v5.32.1			  2015-09-07			    Signals(3)

NAME | SYNOPSIS | DESCRIPTION | NOTES | AUTHOR | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Perl::Unsafe::Signals&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help