File Coverage

blib/lib/IO/File/flock.pm
Criterion Covered Total %
statement 23 24 95.8
branch 1 2 50.0
condition 1 2 50.0
subroutine 10 11 90.9
pod 5 6 83.3
total 40 45 88.8


line stmt bran cond sub pod time code
1             package IO::File::flock;
2 1     1   1847 use strict;
  1         2  
  1         45  
3 1     1   6 use base qw(IO::File::Lockable);
  1         2  
  1         90  
4 1     1   5 use vars qw($VERSION);
  1         2  
  1         47  
5 1     1   5 use Fcntl qw(:flock);
  1         2  
  1         513  
6             $VERSION = '0.31';
7             ##### flock oop i/f
8 8     8 0 65 sub flock_ :method {CORE::flock(shift,shift)}
9             sub flock :method {
10 8     8 1 11 my $fh = shift;
11 8         10 my $lock = shift;
12 8   50     36 my $timeout = shift || 0;
13 8 50       30 return $fh unless($fh->opened);
14 8     8   91 return $fh->set_timeout($timeout => sub {flock_($fh,$lock);$fh});
  8         13  
  8         22  
15             }
16             ##### flock easy i/f
17 0     0 1 0 sub lock_nb :method {shift()->flock(LOCK_EX|LOCK_NB,@_)}
18 2     2 1 6 sub lock_sh :method {shift()->flock(LOCK_SH,@_)}
19 2     2 1 7 sub lock_ex :method {shift()->flock(LOCK_EX,@_)}
20 4     4 1 85 sub lock_un :method {shift()->flock(LOCK_UN,@_)}
21             1;
22             __END__