| line |
l |
!l&&r |
!l&&!r |
condition |
|
211
|
0 |
3 |
0 |
$next_failure //= $f |
|
291
|
1 |
32 |
1 |
$next_waitf // do {
if (my(@i) = @items_needing_regen) {
undef @items_needing_regen;
foreach my $item (@i) {
next unless my $f = $item->gen->();
$f->on_ready(sub {
$self->_item_is_ready($item);
}
);
$item->f = $f;
$items{builtin::refaddr($item)} = $item;
};
};
croak("$self cowardly refuses to sit idle and do nothing") unless keys %items or @next_ready or $next_failure;
($_->f->is_ready or $next_waitf = $_->f->new, last) foreach (values %items);
$next_waitf //= "Future"->new;
$next_waitf->set_label("Future::Selector next_waitf");
if ($next_failure) {
$next_failure->on_fail($next_waitf);
undef $next_failure;
}
elsif (@next_ready) {
$next_waitf->done(@next_ready);
undef @next_ready;
};
$next_waitf->on_ready(sub {
undef $next_waitf;
}
)
} |
|
304
|
29 |
1 |
3 |
keys %items or @next_ready |
|
|
30 |
0 |
3 |
keys %items or @next_ready or $next_failure |
|
307
|
11 |
19 |
0 |
$_->f->is_ready or $next_waitf = $_->f->new, last |
|
308
|
19 |
11 |
0 |
$next_waitf //= "Future"->new |