File Coverage

blib/lib/Perl/Unsafe/Signals.pm
Criterion Covered Total %
statement 20 20 100.0
branch n/a
condition n/a
subroutine 7 7 100.0
pod 0 1 0.0
total 27 28 96.4


line stmt bran cond sub pod time code
1             package Perl::Unsafe::Signals;
2              
3 2     2   20500 use strict;
  2         4  
  2         46  
4 2     2   10 use XSLoader ();
  2         2  
  2         90  
5              
6             our $VERSION = '0.03';
7              
8             XSLoader::load 'Perl::Unsafe::Signals', $VERSION;
9              
10             sub import {
11 2     2   18 no strict 'refs';
  2         4  
  2         353  
12 1     1   5 *{caller() . '::UNSAFE_SIGNALS'} = *UNSAFE_SIGNALS;
  1         1685  
13             }
14              
15             sub UNSAFE_SIGNALS (&) {
16 1     1 0 13 my $code = shift;
17 1         11 my $restore = Perl::Unsafe::Signals::Restore->new;
18 1         3 $code->();
19             }
20              
21             {
22             package # helper class, hide from PAUSE indexer
23             Perl::Unsafe::Signals::Restore;
24             sub new {
25 1     1   3 my($class) = @_;
26 1         4 my $oldflags = Perl::Unsafe::Signals::push_unsafe_flag();
27 1         3 bless \$oldflags, $class;
28             }
29             sub DESTROY {
30 1     1   832 my $self = shift;
31 1         7 my $oldflags = $$self;
32 1         6 Perl::Unsafe::Signals::pop_unsafe_flag($oldflags);
33             }
34             }
35              
36             1;
37              
38             __END__