mirror of
https://git.proxmox.com/git/pve-common
synced 2025-07-17 20:53:07 +00:00
fork_worker: refactor child exit
* factor out duplicated code. * drop final kill(-9, $$), since the POSIX:_exit call does not return (see man 2 _exit). Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
This commit is contained in:
parent
7571d25b3d
commit
edbb302ec8
@ -579,22 +579,21 @@ sub fork_worker {
|
|||||||
}
|
}
|
||||||
&$function($upid);
|
&$function($upid);
|
||||||
};
|
};
|
||||||
|
my ($msg, $exitcode);
|
||||||
my $err = $@;
|
my $err = $@;
|
||||||
if ($err) {
|
if ($err) {
|
||||||
chomp $err;
|
chomp $err;
|
||||||
$err =~ s/\n/ /mg;
|
$err =~ s/\n/ /mg;
|
||||||
syslog('err', $err);
|
syslog('err', $err);
|
||||||
my $msg = "TASK ERROR: $err\n";
|
$msg = "TASK ERROR: $err\n";
|
||||||
POSIX::write($resfh, $msg, length($msg));
|
$exitcode = -1;
|
||||||
POSIX::close($resfh) if $sync;
|
|
||||||
POSIX::_exit(-1);
|
|
||||||
} else {
|
} else {
|
||||||
my $msg = "TASK OK\n";
|
$msg = "TASK OK\n";
|
||||||
|
$exitcode = 0;
|
||||||
|
}
|
||||||
POSIX::write($resfh, $msg, length($msg));
|
POSIX::write($resfh, $msg, length($msg));
|
||||||
POSIX::close($resfh) if $sync;
|
POSIX::close($resfh) if $sync;
|
||||||
POSIX::_exit(0);
|
POSIX::_exit($exitcode);
|
||||||
}
|
|
||||||
kill(-9, $$);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# parent
|
# parent
|
||||||
|
Loading…
Reference in New Issue
Block a user