public function collectAsyncTask(AsyncTask $task) { if ($task->isFinished() and !$task->isCompleted()) { --$this->asyncTasks; $task->onCompletion(Server::getInstance()); $task->setCompleted(); unset($this->asyncTaskStorage[$task->getTaskId()]); return true; } return false; }