App-ptimeout
view release on metacpan or search on metacpan
lib/App/ptimeout.pm view on Meta::CPAN
my $waited = waitpid($pid, WNOHANG);
if($waited == $pid) { # yes, and it exited
$child_status = $?;
last;
}
if($waited == -1) { # it's all gone wrong
die("Error waiting for child process\n");
}
if(time >= $deadline) { # still running, but been running too long
# looks like dpulicate code, but it avoids a race condition
$waited = waitpid($pid, WNOHANG);
if($waited == $pid) {
$child_status = $?;
last;
}
warn "timed out\n";
$timed_out = 1;
$child_status = _terminate_process_tree($pid);
last;
}
( run in 1.619 second using v1.01-cache-2.11-cpan-39bf76dae61 )