[pve-devel] [PATCH common 1/2] fork_worker: refactor child exit

Thomas Lamprecht t.lamprecht at proxmox.com
Tue Nov 20 09:56:03 CET 2018


On 11/20/18 9:46 AM, Stoiko Ivanov wrote:
> * factor out duplicated code.
> * drop final kill(-9, $$), since the POSIX:_exit call does not return
>   (see man 2 _exit).

that's known, this is more like a safety measure to guarantee better sleep
for a developer, and it does no harm... If you remove it do I'd maybe do it
in a separate patch this does not belong in a patch themed with refactoring,
IMO. Looks OK besides that nit.

> 
> 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
> 





More information about the pve-devel mailing list