From 0f1227d401596316c0da39954d12bf693f918f43 Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Thu, 18 Nov 2021 02:57:08 +0000
Subject: [PATCH] Use `Mutex` than `@Synchronized`

---
 .../kotlin/network/framework/TestNetworkHandler.kt          | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

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<Unit>()
         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) {