fix IMAPIdleHandler thread safety: pass idleTag via init, clean up event loop group on reconnect

This commit is contained in:
2026-03-14 14:20:53 +01:00
parent 55ec465677
commit 3b82e6cd95
2 changed files with 11 additions and 10 deletions
@@ -16,14 +16,11 @@ final class IMAPIdleHandler: ChannelInboundHandler, RemovableChannelHandler, @un
typealias InboundIn = Response
private let continuation: AsyncStream<IMAPIdleEvent>.Continuation
private var idleTag: String?
private let idleTag: String
init(continuation: AsyncStream<IMAPIdleEvent>.Continuation) {
init(continuation: AsyncStream<IMAPIdleEvent>.Continuation, idleTag: String) {
self.continuation = continuation
}
func setIdleTag(_ tag: String) {
idleTag = tag
self.idleTag = idleTag
}
func channelRead(context: ChannelHandlerContext, data: NIOAny) {