Browse Source

Auto kill any children before exiting from process

pull/47/merge
msvensson@pilot.mysql.com 18 years ago
parent
commit
b23110f2de
  1. 20
      mysql-test/lib/My/SafeProcess.pm

20
mysql-test/lib/My/SafeProcess.pm

@ -85,6 +85,24 @@ BEGIN {
}
}
END {
# Kill any children still running
for my $proc (values %running){
if ( $proc->is_child($$) ){
print "Killing: $proc\n";
$proc->kill();
}
}
}
sub is_child {
my ($self, $parent_pid)= @_;
die "usage: \$safe_proc->is_child()" unless (@_ == 2 and ref $self);
return ($self->{PARENT} == $parent_pid);
}
# Find the safe process binary or script
my @safe_process_cmd;
my $safe_kill;
@ -172,6 +190,7 @@ sub new {
SAFE_WINPID => $winpid,
SAFE_NAME => $name,
SAFE_SHUTDOWN => $shutdown,
PARENT => $$,
}, $class);
# Put the new process in list of running
@ -203,6 +222,7 @@ sub timer {
({
SAFE_PID => $pid,
SAFE_NAME => "timer",
PARENT => $$,
}, $class);
# Put the new process in list of running

Loading…
Cancel
Save