From: Fabian Grünbichler Date: Tue, 15 Mar 2016 12:58:44 +0000 (+0100) Subject: Add is_worker to RPCEnvironment X-Git-Url: https://git.proxmox.com/?p=pve-access-control.git;a=commitdiff_plain;h=7b6dfe82df441e017abd1216dc32ecde69b82324;hp=8643c99de50806b53d879f26923a97c695146b74 Add is_worker to RPCEnvironment after forking the actual worker process, the child/worker sets a flag that can be checked later on by methods called in the worker. used in the ZFS storage plugins in pve-storage to decide on a short or long default timeout for ZFS operations. --- diff --git a/PVE/RPCEnvironment.pm b/PVE/RPCEnvironment.pm index b3a7dc7..3ec2c91 100644 --- a/PVE/RPCEnvironment.pm +++ b/PVE/RPCEnvironment.pm @@ -28,6 +28,7 @@ my $pve_env; # that (also see perlipc) my $WORKER_PIDS; +my $WORKER_FLAG = 0; my $log_task_result = sub { my ($upid, $user, $status) = @_; @@ -614,6 +615,10 @@ sub get_user { return $self->{user}; } +sub is_worker { + return $WORKER_FLAG; +} + # read/update list of active workers # we move all finished tasks to the archive index, # but keep aktive and most recent task in the active file. @@ -808,6 +813,7 @@ sub fork_worker { if (!$cpid) { # child $0 = "task $upid"; + $WORKER_FLAG = 1; $SIG{INT} = $SIG{QUIT} = $SIG{TERM} = sub { die "received interrupt\n"; };