diff --git a/mirai-core/src/commonTest/kotlin/network/framework/TestNetworkHandler.kt b/mirai-core/src/commonTest/kotlin/network/framework/TestNetworkHandler.kt index 27f21fa8d..35b67c80a 100644 --- a/mirai-core/src/commonTest/kotlin/network/framework/TestNetworkHandler.kt +++ b/mirai-core/src/commonTest/kotlin/network/framework/TestNetworkHandler.kt @@ -11,6 +11,8 @@ package net.mamoe.mirai.internal.network.framework import io.netty.channel.Channel import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock import net.mamoe.mirai.internal.QQAndroidBot import net.mamoe.mirai.internal.network.handler.NetworkHandler import net.mamoe.mirai.internal.network.handler.NetworkHandlerContext @@ -35,9 +37,9 @@ internal open class TestNetworkHandler( val resumeDeferred = CompletableDeferred() val resumeCount = AtomicInteger(0) val onResume get() = resumeDeferred.onJoin + private val mutex = Mutex() - @Synchronized - override suspend fun resumeConnection0() { + override suspend fun resumeConnection0(): Unit = mutex.withLock { resumeCount.incrementAndGet() resumeDeferred.complete(Unit) when (this.correspondingState) {