Parallel-Fork-BossWorkerAsync
view release on metacpan or search on metacpan
lib/Parallel/Fork/BossWorkerAsync.pm view on Meta::CPAN
while ( 1 ) {
# When to exit loop?
# shutting_down = 1
# job_queue empty
# all workers idle, and no partial jobs
# result_queue empty
if ($self->{shutting_down} &&
! @{ $self->{job_queue} } &&
! @{ $self->{result_queue} } ) {
my $busy=0;
my $partials = 0;
for my $s (keys(%$workers)) {
if ( ! $workers->{ $s }->{idle}) {
$busy ++;
last;
} elsif (exists($workers->{ $s }->{partial_job})) {
$partials ++;
last;
}
}
if ( ! $busy && ! $partials) {
# Close all workers
for my $s (keys(%$workers)) {
close($workers->{ $s }->{socket});
}
close($self->{app_socket});
last;
}
}
# Set up selectors:
( run in 0.501 second using v1.01-cache-2.11-cpan-87723dcf8b7 )