Просмотр исходного кода

Add timeout for logout on close

Him188 3 лет назад
Родитель
Сommit
753342d99e
1 измененных файлов с 4 добавлено и 1 удалено
  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) {
             }
         }