From 24f11779f2282b3e3e5aae991c117e276e2a5176 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 25 Jul 2018 18:52:17 +0100 Subject: [PATCH] Level: don't try to unregister generators from non-live workers this was causing garbage-collected workers to get restarted on shutdown if they previously had the generator registered for that level. --- src/pocketmine/level/Level.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 0b61b2ef7..dddd0d55a 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -383,8 +383,10 @@ class Level implements ChunkManager, Metadatable{ public function unregisterGenerator(){ $pool = $this->server->getAsyncPool(); - foreach($this->generatorRegisteredWorkers as $i => $bool){ - $pool->submitTaskToWorker(new GeneratorUnregisterTask($this), $i); + foreach($pool->getRunningWorkers() as $i){ + if(isset($this->generatorRegisteredWorkers[$i])){ + $pool->submitTaskToWorker(new GeneratorUnregisterTask($this), $i); + } } $this->generatorRegisteredWorkers = []; }