File Coverage

blib/lib/UV/Timer.pm
Criterion Covered Total %
statement 34 34 100.0
branch 6 8 75.0
condition 4 4 100.0
subroutine 7 7 100.0
pod 2 2 100.0
total 53 55 96.3


line stmt bran cond sub pod time code
1             package UV::Timer;
2              
3             our $VERSION = '1.900';
4              
5 10     10   4511 use strict;
  10         27  
  10         413  
6 10     10   53 use warnings;
  10         18  
  10         227  
7 10     10   46 use Carp ();
  10         15  
  10         185  
8 10     10   43 use Exporter qw(import);
  10         17  
  10         315  
9 10     10   3494 use parent 'UV::Handle';
  10         2255  
  10         52  
10              
11             our @EXPORT_OK = (@UV::Timer::EXPORT_XS,);
12              
13             sub repeat {
14 19     19 1 443 my $self = shift;
15 19 100       112 return $self->_get_repeat() unless (@_);
16 2         13 $self->_set_repeat(@_);
17 2         100282 return $self;
18             }
19              
20             sub start {
21 35     35 1 13990 my $self = shift;
22 35 50       327 Carp::croak("Can't start a closed handle") if ($self->closed()) ;
23 35   100     118 my $timeout = shift(@_) || 0;
24 35   100     124 my $repeat = shift(@_) || 0;
25 35 100       79 if (@_) {
26 33         111 $self->on('timer', shift);
27             }
28 35         59 my $res;
29 35         47 my $err = do { #catch
30 35         56 local $@;
31 35         68 eval {
32 35         133 $res = $self->_start($timeout, $repeat);
33 35         55 1;
34             }; #try
35 35         84 $@;
36             };
37 35 50       87 Carp::croak($err) if $err; # throw
38 35         78 return $res;
39             }
40             1;
41              
42             __END__