summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/ext/Thread/Thread/Signal.pm
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>2002-05-16 10:09:28 +0000
committermarkm <markm@FreeBSD.org>2002-05-16 10:09:28 +0000
commitf56e05005c751822074f0a22aa9a98d2eb189924 (patch)
treee28fc632241c9d248069d45dd9ab2a41fa64868f /contrib/perl5/ext/Thread/Thread/Signal.pm
parent344ddc14973a1519f100f54051dcb068069fe43c (diff)
downloadFreeBSD-src-f56e05005c751822074f0a22aa9a98d2eb189924.zip
FreeBSD-src-f56e05005c751822074f0a22aa9a98d2eb189924.tar.gz
Perl is no longer in base. Long live the port!
Diffstat (limited to 'contrib/perl5/ext/Thread/Thread/Signal.pm')
-rw-r--r--contrib/perl5/ext/Thread/Thread/Signal.pm50
1 files changed, 0 insertions, 50 deletions
diff --git a/contrib/perl5/ext/Thread/Thread/Signal.pm b/contrib/perl5/ext/Thread/Thread/Signal.pm
deleted file mode 100644
index f5f03db..0000000
--- a/contrib/perl5/ext/Thread/Thread/Signal.pm
+++ /dev/null
@@ -1,50 +0,0 @@
-package Thread::Signal;
-use Thread qw(async);
-
-=head1 NAME
-
-Thread::Signal - Start a thread which runs signal handlers reliably
-
-=head1 SYNOPSIS
-
- use Thread::Signal;
-
- $SIG{HUP} = \&some_handler;
-
-=head1 DESCRIPTION
-
-The C<Thread::Signal> module starts up a special signal handler thread.
-All signals to the process are delivered to it and it runs the
-associated C<$SIG{FOO}> handlers for them. Without this module,
-signals arriving at inopportune moments (such as when perl's internals
-are in the middle of updating critical structures) cause the perl
-code of the handler to be run unsafely which can cause memory corruption
-or worse.
-
-=head1 BUGS
-
-This module changes the semantics of signal handling slightly in that
-the signal handler is run separately from the main thread (and in
-parallel with it). This means that tricks such as calling C<die> from
-a signal handler behave differently (and, in particular, can't be
-used to exit directly from a system call).
-
-=cut
-
-if (!init_thread_signals()) {
- require Carp;
- Carp::croak("init_thread_signals failed: $!");
-}
-
-async {
- my $sig;
- while ($sig = await_signal()) {
- &$sig();
- }
-};
-
-END {
- kill_sighandler_thread();
-}
-
-1;
OpenPOWER on IntegriCloud