diff --git a/src/pocketmine/scheduler/AsyncPool.php b/src/pocketmine/scheduler/AsyncPool.php index 3cda006f2..cb7b1a5fa 100644 --- a/src/pocketmine/scheduler/AsyncPool.php +++ b/src/pocketmine/scheduler/AsyncPool.php @@ -292,26 +292,19 @@ class AsyncPool{ $task->checkProgressUpdates($this->server); if($task->isGarbage() and !$task->isRunning() and !$task->isCrashed()){ if(!$task->hasCancelledRun()){ - try{ - /* - * It's possible for a task to submit a progress update and then finish before the progress - * update is detected by the parent thread, so here we consume any missed updates. - * - * When this happens, it's possible for a progress update to arrive between the previous - * checkProgressUpdates() call and the next isGarbage() call, causing progress updates to be - * lost. Thus, it's necessary to do one last check here to make sure all progress updates have - * been consumed before completing. - */ - $task->checkProgressUpdates($this->server); - $task->onCompletion($this->server); - if($task->removeDanglingStoredObjects()){ - $this->logger->notice("AsyncTask " . get_class($task) . " stored local complex data but did not remove them after completion"); - } - }catch(\Throwable $e){ - $this->logger->critical("Could not execute completion of asynchronous task " . (new \ReflectionClass($task))->getShortName() . ": " . $e->getMessage()); - $this->logger->logException($e); - - $task->removeDanglingStoredObjects(); //silent + /* + * It's possible for a task to submit a progress update and then finish before the progress + * update is detected by the parent thread, so here we consume any missed updates. + * + * When this happens, it's possible for a progress update to arrive between the previous + * checkProgressUpdates() call and the next isGarbage() call, causing progress updates to be + * lost. Thus, it's necessary to do one last check here to make sure all progress updates have + * been consumed before completing. + */ + $task->checkProgressUpdates($this->server); + $task->onCompletion($this->server); + if($task->removeDanglingStoredObjects()){ + $this->logger->notice("AsyncTask " . get_class($task) . " stored local complex data but did not remove them after completion"); } }