Explorar el Código

Add timeout for logout on close

Him188 hace 3 años
padre
commit
753342d99e
Se han modificado 1 ficheros con 4 adiciones y 1 borrados
  1. 4 1
      mirai-core/src/commonMain/kotlin/QQAndroidBot.kt

+ 4 - 1
mirai-core/src/commonMain/kotlin/QQAndroidBot.kt

@@ -52,6 +52,7 @@ import net.mamoe.mirai.utils.BotConfiguration
 import net.mamoe.mirai.utils.MiraiLogger
 import net.mamoe.mirai.utils.lateinitMutableProperty
 import kotlin.contracts.contract
+import kotlin.time.Duration.Companion.seconds
 
 internal fun Bot.asQQAndroidBot(): QQAndroidBot {
     contract {
@@ -73,7 +74,9 @@ internal open class QQAndroidBot constructor(
         if (!this.isActive) return
         runBlocking {
             try { // this may not be very good but
-                components[SsoProcessor].logout(network)
+                withTimeoutOrNull(5.seconds) {
+                    components[SsoProcessor].logout(network)
+                }
             } catch (ignored: Exception) {
             }
         }