From 7b6dfe82df441e017abd1216dc32ecde69b82324 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fabian=20Gr=C3=BCnbichler?= Date: Tue, 15 Mar 2016 13:58:44 +0100 Subject: [PATCH] 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. --- PVE/RPCEnvironment.pm | 6 ++++++ 1 file changed, 6 insertions(+) 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"; }; -- 2.39.2