From 24704e4b99a8cc83fe5f783e45fa4dee85b50b21 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Mon, 26 Jun 2023 18:07:35 +0200 Subject: [PATCH] entity renderer: fix freeze on low thread systems --- .../bixilon/minosoft/gui/rendering/entity/EntityRenderer.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/entity/EntityRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/entity/EntityRenderer.kt index 7e6da40dc..d442b815c 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/entity/EntityRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/entity/EntityRenderer.kt @@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.entity import de.bixilon.kutil.collections.CollectionUtil.lockMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf -import de.bixilon.kutil.collections.iterator.async.QueuedIterator +import de.bixilon.kutil.collections.iterator.async.ConcurrentIterator import de.bixilon.kutil.collections.map.LockMap import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.ThreadPool @@ -53,7 +53,6 @@ class EntityRenderer( private val models: LockMap> = lockMapOf() private lateinit var localModel: LocalPlayerModel private var toUnload: MutableList> = synchronizedListOf() - private val iterator = QueuedIterator(models.unsafe.values.spliterator(), priority = ThreadPool.HIGHER, queueSize = 1000) var hitboxes = profile.hitbox.enabled @@ -153,8 +152,7 @@ class EntityRenderer( private fun runAsync(executor: ((EntityModel<*>) -> Unit)) { models.lock.acquire() - iterator.reuse(models.unsafe.values.spliterator()) - iterator.iterate(executor) + ConcurrentIterator(models.unsafe.values.spliterator(), priority = ThreadPool.HIGHER).iterate(executor) models.lock.release() }