File Coverage

blib/lib/Linux/Perl/SigSet.pm
Criterion Covered Total %
statement 23 23 100.0
branch 1 2 50.0
condition 2 5 40.0
subroutine 4 4 100.0
pod 0 1 0.0
total 30 35 85.7


line stmt bran cond sub pod time code
1             package Linux::Perl::SigSet;
2              
3 3     3   24 use strict;
  3         6  
  3         87  
4 3     3   12 use warnings;
  3         6  
  3         93  
5              
6             my $sig_num_hr;
7              
8 3     3   15 use constant _SIG_MAX => 63;
  3         6  
  3         810  
9              
10             sub from_list {
11 2     2 0 7 my (@list) = @_;
12              
13 2         20 my $vec = q<>;
14              
15 2         24 for my $sig (@list) {
16 2 50       19 if ($sig =~ tr<0-9><>c) {
17              
18 2   33     30 $sig_num_hr ||= do {
19 2         23 require Config;
20 2         497 my @names = split m< >, $Config::Config{'sig_name'};
21 2         8 my %signum;
22              
23 2         398 @signum{@names} = split m< >, $Config::Config{'sig_num'};
24 2         31 \%signum;
25             };
26              
27 2   50     11 $sig = $sig_num_hr->{$sig} || die "Unrecognized signal: '$sig'";
28             }
29              
30 2         15 vec( $vec, $sig - 1, 1 ) = 1;
31             }
32              
33 2         6 vec( $vec, _SIG_MAX(), 1 ) = 0;
34              
35 2         11 return $vec;
36             }
37              
38             1;