mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-03 00:29:54 +00:00
World: fixed additional edge case - population promise rejected before task completion
if this happened, the index would stay set in activeChunkPopulationTasks, eventually causing the generation queue to jam up completely and non-forced generation to come to a standstill.
This commit is contained in:
parent
1775699f05
commit
34ea199fb0
@ -2918,7 +2918,11 @@ class World implements ChunkManager{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($this->chunkPopulationRequestMap[$index = World::chunkHash($x, $z)]) && isset($this->activeChunkPopulationTasks[$index])){
|
$index = World::chunkHash($x, $z);
|
||||||
|
if(!isset($this->chunkPopulationRequestMap[$index])){
|
||||||
|
$this->logger->debug("Discarding population result for chunk x=$x,z=$z - promise was already broken");
|
||||||
|
unset($this->activeChunkPopulationTasks[$index]);
|
||||||
|
}elseif(isset($this->activeChunkPopulationTasks[$index])){
|
||||||
if($dirtyChunks === 0){
|
if($dirtyChunks === 0){
|
||||||
$oldChunk = $this->loadChunk($x, $z);
|
$oldChunk = $this->loadChunk($x, $z);
|
||||||
$this->setChunk($x, $z, $chunk);
|
$this->setChunk($x, $z, $chunk);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user