diff --git a/src/dorkbox/network/serialization/NetworkSerializationManager.kt b/src/dorkbox/network/serialization/NetworkSerializationManager.kt index 84f847de..3767b6c8 100644 --- a/src/dorkbox/network/serialization/NetworkSerializationManager.kt +++ b/src/dorkbox/network/serialization/NetworkSerializationManager.kt @@ -80,12 +80,12 @@ interface NetworkSerializationManager : SerializationManager { /** * @return takes a kryo instance from the pool. */ - suspend fun takeKryo(): KryoExtra + fun takeKryo(): KryoExtra /** * Returns a kryo instance to the pool. */ - suspend fun returnKryo(kryo: KryoExtra) + fun returnKryo(kryo: KryoExtra) /** * @return true if the remote kryo registration are the same as our own diff --git a/src/dorkbox/network/serialization/Serialization.kt b/src/dorkbox/network/serialization/Serialization.kt index 2287f9db..96968ceb 100644 --- a/src/dorkbox/network/serialization/Serialization.kt +++ b/src/dorkbox/network/serialization/Serialization.kt @@ -555,7 +555,7 @@ class Serialization(private val references: Boolean, /** * @return takes a kryo instance from the pool. */ - override suspend fun takeKryo(): KryoExtra { + override fun takeKryo(): KryoExtra { // ALWAYS get as many as needed. Recycle them to prevent too many getting created return kryoPool.poll() ?: initKryo() } @@ -563,8 +563,9 @@ class Serialization(private val references: Boolean, /** * Returns a kryo instance to the pool for use later on */ - override suspend fun returnKryo(kryo: KryoExtra) { - kryoPool.send(kryo) + override fun returnKryo(kryo: KryoExtra) { + // return as much as we can. don't suspend if the pool is full, we just throw it away. + kryoPool.offer(kryo) } /**