From 8d4eb453864037078b972f85f7466385ce1b243a Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 23 Jun 2021 15:09:01 +0800 Subject: [PATCH] Rearrange functions in `NettyNetworkHandler` --- .../network/impl/netty/NettyNetworkHandler.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt b/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt index 9047a4067..1d92ddcf5 100644 --- a/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt +++ b/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt @@ -36,13 +36,6 @@ internal open class NettyNetworkHandler( context: NetworkHandlerContext, private val address: SocketAddress, ) : NetworkHandlerSupport(context) { - override fun close(cause: Throwable?) { - if (state == State.CLOSED) return // already - super.close(cause) // see the `init` block at line 213, just above [NettyState] - } - - private fun closeSuper(cause: Throwable?) = super.close(cause) - final override tailrec suspend fun sendPacketImpl(packet: OutgoingPacket) { val state = _state as NettyState if (state.sendPacketImpl(packet)) return @@ -201,6 +194,13 @@ internal open class NettyNetworkHandler( // states /////////////////////////////////////////////////////////////////////////// + override fun close(cause: Throwable?) { + if (state == State.CLOSED) return // already + super.close(cause) + // when coroutine scope completed, state is already set to CLOSED, + // see the following `init` block. + } + init { coroutineContext.job.invokeOnCompletion { e -> setState { StateClosed(e?.unwrapCancellationException()) } @@ -384,7 +384,7 @@ internal open class NettyNetworkHandler( val exception: Throwable? ) : NettyState(State.CLOSED) { init { - closeSuper(exception) + close(exception) } override fun getCause(): Throwable? = exception