emqx / CocoaMQTT

MQTT 5.0 client library for iOS and macOS written in Swift
https://www.emqx.com/en
Other
1.57k stars 411 forks source link

Make subscriptions, subscriptionsWaitingAck and unsubscriptionsWaitin… #542

Closed zhihuitang closed 11 months ago

zhihuitang commented 11 months ago

The subscriptions, subscriptionsWaitingAck and unsubscriptionsWaitingAck are not thread safe. I created a ThreadSafeDictionary to make them thread safe.

    public var subscriptions: [String: CocoaMQTTQoS] = [:]

    fileprivate var subscriptionsWaitingAck: [UInt16: [MqttSubscription]] = [:]
    fileprivate var unsubscriptionsWaitingAck: [UInt16: [MqttSubscription]] = [:]