From 0e71b18197d403878e4cbb2683aca3b49bae2839 Mon Sep 17 00:00:00 2001 From: Aaron Piotrowski Date: Fri, 10 Nov 2017 10:32:01 -0600 Subject: [PATCH] Faster freeing of task memory --- lib/Worker/TaskRunner.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/Worker/TaskRunner.php b/lib/Worker/TaskRunner.php index 94e0d80..403938e 100644 --- a/lib/Worker/TaskRunner.php +++ b/lib/Worker/TaskRunner.php @@ -37,11 +37,7 @@ class TaskRunner { $job = yield $this->channel->receive(); while ($job instanceof Internal\Job) { - $task = $job->getTask(); - - $result = call([$task, 'run'], $this->environment); - - $result->onResolve(function ($exception, $value) use ($job) { + call([$job->getTask(), 'run'], $this->environment)->onResolve(function ($exception, $value) use ($job) { if ($exception) { $result = new Internal\TaskFailure($job->getId(), $exception); } else { @@ -51,6 +47,8 @@ class TaskRunner { $this->channel->send($result); }); + unset($job); // Free memory from last job. + $job = yield $this->channel->receive(); }