1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#! /usr/bin/perl
use strict;
use warnings;
use Test::More tests => 3;
use_ok('Parallel::Prefork');
my $pm;
eval {
$pm = Parallel::Prefork->new({
max_workers => 1,
trap_signals => {
TERM => 'TERM',
HUP => 'TERM',
},
});
};
ok($pm);
my $c = 0;
while ($pm->signal_received ne 'TERM') {
$c++;
$pm->start(
sub {
sleep 1;
if ($c == 1) {
kill 'HUP', $pm->manager_pid;
} else {
kill 'TERM', $pm->manager_pid;
}
},
);
}
$pm->wait_all_children;
is($c, 2);
|