diff --git a/Sources/Nats/NatsConnection.swift b/Sources/Nats/NatsConnection.swift index bbb6457..1bc4e8a 100644 --- a/Sources/Nats/NatsConnection.swift +++ b/Sources/Nats/NatsConnection.swift @@ -937,7 +937,6 @@ class ConnectionHandler: ChannelInboundHandler { if currentState == .disconnected || currentState == .closed { return false // Already in disconnected/closed state } - $0 = .disconnected return true } @@ -945,6 +944,9 @@ class ConnectionHandler: ChannelInboundHandler { return } + // Set state to disconnected after check + state.withLockedValue { $0 = .disconnected } + // Clean up pending continuations to prevent leaks if let continuation = serverInfoContinuation.withLockedValue({ cont in let toResume = cont