| blib/lib/Mojo/Reactor/Epoll.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % |
| condition | 25 | 41 | 60.9 |
| line | l | !l | condition |
|---|---|---|---|
| 84 | 0 | 3060 | ++$i and $self->_try('Timer', $t->{'cb'}) |
| line | !l | l&&!r | l&&r | condition |
|---|---|---|---|---|
| 95 | 2 | 0 | 3 | exists $self->{'io'}{$fd} and exists $self->{'io'}{$fd}{'epoll_cb'} |
| line | l | !l | condition |
|---|---|---|---|
| 13 | 0 | 1 | $ENV{'MOJO_REACTOR_EPOLL_DEBUG'} || 0 |
| 150 | 15 | 9 | $io->{'epoll_cb'} // sub { my($events) = @_; if ($events->{'in'} or $events->{'prio'} or $events->{'hup'} or $events->{'err'}) { return unless exists $self->{'io'}{$fd}; $self->_try('I/O watcher', $self->{'io'}{$fd}{'cb'}, 0); }; if ($events->{'out'} or $events->{'hup'} or $events->{'err'}) { return unless exists $self->{'io'}{$fd}; $self->_try('I/O watcher', $self->{'io'}{$fd}{'cb'}, 1); }; } |
| 162 | 3 | 0 | delete $self->{'pending_watch'} // [] |
| line | l | !l&&r | !l&&!r | condition |
|---|---|---|---|---|
| 36 | 9 | 6 | 0 | $self->{'next_timer'} //= $self->timer(0, \&Mojo::Reactor::Epoll::_next) |
| 48 | 17816 | 0 | 17822 | $i or not $self->{'running'} |
| 50 | 17815 | 1 | 6 | keys %{$$self{'timers'};} or keys %{$$self{'io'};} |
| 63 | 15478 | 3 | 0 | $self->{'epoll'} // $self->_create_epoll |
| 142 | 15139 | 0 | 343 | $events->{'in'} or $events->{'prio'} |
| 0 | 0 | 343 | $events->{'in'} or $events->{'prio'} or $events->{'hup'} | |
| 0 | 0 | 343 | $events->{'in'} or $events->{'prio'} or $events->{'hup'} or $events->{'err'} | |
| 146 | 1809 | 0 | 13673 | $events->{'out'} or $events->{'hup'} |
| 0 | 0 | 13673 | $events->{'out'} or $events->{'hup'} or $events->{'err'} | |
| 154 | 15 | 9 | 0 | $io->{'epoll_cb'} //= $cb |