Branch Coverage

blib/lib/IO/Async/Function.pm
Criterion Covered Total %
branch 83 112 74.1


line true false branch
206 14 133 if exists $params{$_}
209 14 35 if (keys %worker_params)
215 7 42 if (exists $params{'idle_timeout'})
217 0 7 if (not $timeout) { }
0 7 elsif (my $idle_timer = $self->{'idle_timer'}) { }
218 0 0 if $self->{'idle_timer'}
227 0 1 unless my $self = shift()
235 0 1 if $workers->{$id}{'busy'}
242 0 1 if $self->workers_idle > $self->{'min_workers'}
250 48 50 if exists $params{$_}
257 61 233 if exists $params{$_}
261 0 49 if defined $self->{'code'} and defined $self->{'func'}
263 0 49 if defined $self->{'func'} and not defined $self->{'module'}
267 0 49 if ($need_restart and $self->loop)
338 3 35 defined wantarray ? :
341 3 40 if defined wantarray
460 0 90 unless $self->loop
463 0 90 unless ref $args eq 'ARRAY'
466 2 88 if (defined $params{'on_result'}) { }
44 44 elsif (defined $params{'on_return'} and defined $params{'on_error'}) { }
0 44 elsif (not defined wantarray) { }
468 0 2 unless ref $on_result
480 0 44 unless ref $on_return
482 0 44 unless ref $on_error
496 66 23 if (my $worker = $self->_get_worker) { }
508 9 14 if ($priority) { }
523 0 66 unless my $self = shift()
527 0 21 unless my $self = shift()
531 45 44 if $on_done
532 45 44 if $on_fail
534 53 36 if defined wantarray
598 0 3 unless my $self = shift()
601 3 0 if $self->{'stopping'}
603 0 0 if $self->workers < $self->{'min_workers'}
619 78 26 unless $self->{'workers'}{$_}{'busy'}
622 12 23 if ($self->workers < $self->{'max_workers'})
636 86 2 if ($self->workers_idle == 0)
637 17 69 if $self->{'idle_timer'}
648 0 23 unless my $worker = $self->_get_worker
652 1 22 if $f->is_cancelled
659 19 47 if ($self->workers_idle > $self->{'min_workers'})
660 17 2 if $self->{'idle_timer'} and not $self->{'idle_timer'}->is_running
685 49 6 if (defined(my $code = $params{'code'})) { }
6 0 elsif (defined(my $func = $params{'func'})) { }
689 0 1 if defined $init_code
702 0 6 if ref $init_func eq 'ARRAY'
718 6 49 if $send_initial
728 5 48 if $self->{'send_initial'}
747 3 45 if defined wantarray
749 48 0 if (my $function = $worker->parent)
752 10 38 if ($worker->{'busy'}) { }
780 7 78 if not $worker->{'max_calls'} or $worker->{'exit_on_die'} and $type eq 'e'
782 66 19 if ($type eq 'r') { }
19 0 elsif ($type eq 'e') { }
805 88 0 if $function
807 10 78 if $function and $worker->{'remove_on_idle'}