summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--inc/taskmanager.inc.php6
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);
}