diff --git a/src/main/java/de/bixilon/minosoft/protocol/network/network/client/netty/pipeline/ClientPacketHandler.kt b/src/main/java/de/bixilon/minosoft/protocol/network/network/client/netty/pipeline/ClientPacketHandler.kt index 2b5fc880b..535bf7514 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/network/network/client/netty/pipeline/ClientPacketHandler.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/network/network/client/netty/pipeline/ClientPacketHandler.kt @@ -16,7 +16,7 @@ package de.bixilon.minosoft.protocol.network.network.client.netty.pipeline import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.ThreadPool -import de.bixilon.kutil.concurrent.pool.runnable.SimplePoolRunnable +import de.bixilon.kutil.concurrent.pool.runnable.ForcePooledRunnable import de.bixilon.minosoft.config.profile.profiles.other.OtherProfileManager import de.bixilon.minosoft.modding.event.events.PacketReceiveEvent import de.bixilon.minosoft.protocol.network.connection.Connection @@ -39,9 +39,8 @@ class ClientPacketHandler( private val connection: Connection = client.connection override fun channelRead0(context: ChannelHandlerContext, queued: QueuedS2CP<*>) { - if (queued.type.threadSafe && (DefaultThreadPool.queueSize < DefaultThreadPool.threadCount - 1 || queued.type.lowPriority)) { // only handle async when thread pool not busy - val runnable = SimplePoolRunnable(priority = if (queued.type.lowPriority) ThreadPool.Priorities.NORMAL else ThreadPool.Priorities.HIGH) - runnable.runnable = Runnable { tryHandle(context, queued.type, queued.packet) } + if (queued.type.threadSafe && (queued.type.lowPriority || DefaultThreadPool.queueSize < DefaultThreadPool.threadCount - 1)) { // only handle async when thread pool not busy + val runnable = ForcePooledRunnable(priority = if (queued.type.lowPriority) ThreadPool.Priorities.NORMAL else ThreadPool.Priorities.HIGH) { tryHandle(context, queued.type, queued.packet) } DefaultThreadPool += runnable } else { tryHandle(context, queued.type, queued.packet)