Skip to content

Commit f5beac1

Browse files
committed
Synchronize access to connection state
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
1 parent fce31b5 commit f5beac1

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

Sources/Nats/NatsConnection.swift

+15-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,21 @@ class ConnectionHandler: ChannelInboundHandler {
4747
private var clientKey: URL?
4848

4949
typealias InboundIn = ByteBuffer
50-
internal var state: NatsState = .pending
50+
private let stateLock = NSLock()
51+
private var _state: NatsState = .pending
52+
internal var state: NatsState {
53+
get{
54+
stateLock.lock()
55+
defer { stateLock.unlock() }
56+
return _state
57+
}
58+
set{
59+
stateLock.lock()
60+
defer { stateLock.unlock() }
61+
_state = newValue
62+
}
63+
}
64+
5165
private var subscriptions: [UInt64: Subscription]
5266
private var subscriptionCounter = ManagedAtomic<UInt64>(0)
5367
private var serverInfo: ServerInfo?

0 commit comments

Comments
 (0)