[pve-devel] [PATCH common 1/2] fork_worker: refactor child exit
Stoiko Ivanov
s.ivanov at proxmox.com
Tue Nov 20 09:46:31 CET 2018
* 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 at proxmox.com>
---
src/PVE/RESTEnvironment.pm | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/PVE/RESTEnvironment.pm b/src/PVE/RESTEnvironment.pm
index 69af004..c2fea2b 100644
--- a/src/PVE/RESTEnvironment.pm
+++ b/src/PVE/RESTEnvironment.pm
@@ -579,22 +579,21 @@ sub fork_worker {
}
&$function($upid);
};
+ my ($msg, $exitcode);
my $err = $@;
if ($err) {
chomp $err;
$err =~ s/\n/ /mg;
syslog('err', $err);
- my $msg = "TASK ERROR: $err\n";
- POSIX::write($resfh, $msg, length($msg));
- POSIX::close($resfh) if $sync;
- POSIX::_exit(-1);
+ $msg = "TASK ERROR: $err\n";
+ $exitcode = -1;
} else {
- my $msg = "TASK OK\n";
- POSIX::write($resfh, $msg, length($msg));
- POSIX::close($resfh) if $sync;
- POSIX::_exit(0);
+ $msg = "TASK OK\n";
+ $exitcode = 0;
}
- kill(-9, $$);
+ POSIX::write($resfh, $msg, length($msg));
+ POSIX::close($resfh) if $sync;
+ POSIX::_exit($exitcode);
}
# parent
--
2.11.0
More information about the pve-devel
mailing list