mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-01 20:10:18 +08:00
Fix cancellation check in AbstractKeepAliveNetworkHandlerSelector
This commit is contained in:
parent
978228afc1
commit
4a2b8ac92c
@ -10,7 +10,10 @@
|
|||||||
package net.mamoe.mirai.internal.network.handler.selector
|
package net.mamoe.mirai.internal.network.handler.selector
|
||||||
|
|
||||||
import kotlinx.atomicfu.atomic
|
import kotlinx.atomicfu.atomic
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.currentCoroutineContext
|
||||||
|
import kotlinx.coroutines.delay
|
||||||
|
import kotlinx.coroutines.isActive
|
||||||
|
import kotlinx.coroutines.yield
|
||||||
import net.mamoe.mirai.internal.network.handler.NetworkHandler
|
import net.mamoe.mirai.internal.network.handler.NetworkHandler
|
||||||
import net.mamoe.mirai.internal.network.handler.NetworkHandlerFactory
|
import net.mamoe.mirai.internal.network.handler.NetworkHandlerFactory
|
||||||
import net.mamoe.mirai.internal.network.handler.logger
|
import net.mamoe.mirai.internal.network.handler.logger
|
||||||
@ -87,9 +90,7 @@ internal abstract class AbstractKeepAliveNetworkHandlerSelector<H : NetworkHandl
|
|||||||
// ?: MaxAttemptsReachedException(null)
|
// ?: MaxAttemptsReachedException(null)
|
||||||
}
|
}
|
||||||
if (!currentCoroutineContext().isActive) {
|
if (!currentCoroutineContext().isActive) {
|
||||||
logIfEnabled { "Cancellation detected." }
|
yield() // check cancellation
|
||||||
yield() // throw canonical CancellationException if cancelled
|
|
||||||
throw CancellationException("Cancellation detected.")
|
|
||||||
}
|
}
|
||||||
val current = getCurrentInstanceOrNull()
|
val current = getCurrentInstanceOrNull()
|
||||||
lastNetwork = current
|
lastNetwork = current
|
||||||
|
Loading…
Reference in New Issue
Block a user