From 534352400bdba9eeb198dd42c2e29aa3e632dedb Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Fri, 7 Mar 2025 22:23:51 +0100 Subject: [PATCH] chunk mesher: properly cleanup tasks, requeue on interrupt --- .../bixilon/minosoft/gui/rendering/chunk/mesher/ChunkMesher.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/mesher/ChunkMesher.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/mesher/ChunkMesher.kt index 4c50d2c39..1798f31a4 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/mesher/ChunkMesher.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/mesher/ChunkMesher.kt @@ -68,11 +68,12 @@ class ChunkMesher( fun tryMesh(item: WorldQueueItem, task: MeshPrepareTask, runnable: InterruptableRunnable) { try { mesh(item, runnable) - renderer.meshingQueue.tasks -= task } catch (ignored: InterruptedException) { + renderer.meshingQueue.queue(item) } finally { task.runnable.interruptable = false Thread.interrupted() // clear interrupted flag + renderer.meshingQueue.tasks -= task renderer.meshingQueue.work() } }