diff options
author | Simon Rettberg | 2020-09-22 15:10:04 +0200 |
---|---|---|
committer | Simon Rettberg | 2020-09-22 15:10:04 +0200 |
commit | 0c1bfb91a90430ff95194bf1267226306aae5042 (patch) | |
tree | df4847c26e119ec3bb8b9f1341cbad908c45f12f | |
parent | [Trigger/Event] Fix minor warnings (diff) | |
download | slx-admin-0c1bfb91a90430ff95194bf1267226306aae5042.tar.gz slx-admin-0c1bfb91a90430ff95194bf1267226306aae5042.tar.xz slx-admin-0c1bfb91a90430ff95194bf1267226306aae5042.zip |
[inc/Taskmanager] waitComplete(): Better timeout handling
Sleep before first query, since we assume that we either just obtained
the status object and nothing much has changed since then, or we passed
in a deserialized task id from much earlier, where 100ms don't matter
that much.
-rw-r--r-- | inc/taskmanager.inc.php | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/inc/taskmanager.inc.php b/inc/taskmanager.inc.php index 85d5ee39..f7c72e04 100644 --- a/inc/taskmanager.inc.php +++ b/inc/taskmanager.inc.php @@ -140,7 +140,8 @@ class Taskmanager return false; $done = false; $deadline = microtime(true) + $timeout / 1000; - do { + while (($remaining = $deadline - microtime(true)) > 0) { + usleep(min(100000, $remaining * 100000)); $status = self::status($task); if (!isset($status['statusCode'])) break; @@ -148,8 +149,7 @@ class Taskmanager $done = true; break; } - usleep(100000); - } while (microtime(true) < $deadline); + } if ($done) { // For now we do this unconditionally, but maybe we want to keep them longer some time? self::release($task); } |