chunk mesher: properly cleanup tasks, requeue on interrupt

This commit is contained in:
Moritz Zwerger 2025-03-07 22:23:51 +01:00
parent 37c3c81d83
commit 534352400b
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -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()
}
}