From 7a07d7a1436f8d67fcccf875d35dbac88922f67a Mon Sep 17 00:00:00 2001 From: Bixilon Date: Mon, 24 Oct 2022 18:16:11 +0200 Subject: [PATCH] world: improve locking when retrieving neighbours --- src/main/java/de/bixilon/minosoft/data/world/World.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/bixilon/minosoft/data/world/World.kt b/src/main/java/de/bixilon/minosoft/data/world/World.kt index 8ebe56e7d..ceade2e7a 100644 --- a/src/main/java/de/bixilon/minosoft/data/world/World.kt +++ b/src/main/java/de/bixilon/minosoft/data/world/World.kt @@ -357,9 +357,11 @@ class World( */ fun getChunkNeighbours(neighbourPositions: Array): Array { val chunks: Array = arrayOfNulls(neighbourPositions.size) + this.chunks.lock.acquire() for ((index, neighbourPosition) in neighbourPositions.withIndex()) { - chunks[index] = this[neighbourPosition] ?: continue + chunks[index] = this.chunks.unsafe[neighbourPosition] ?: continue } + this.chunks.lock.release() return chunks }