         storedPacket = [:]
         
         state = .disconnected
+        
+        sendQueue.setSpecific(key: QueueSpecifi.SendKey, value: QueueSpecifi.SendValue)
+        readQueue.setSpecific(key: QueueSpecifi.ReadKey, value: QueueSpecifi.ReadValue)
     }
     
     deinit {

    }

    private func scheduleSendMessage() {
        // TODO: exec in send queue
        guard let packet = messageQueue.first else {
            assert(false)
            return

    case invaildPacket
}

private struct QueueSpecifi {
    static let SendKey = DispatchSpecificKey<String>()
    static let SendValue = "SEND_QUEUE_SPECIFI_VALUE"
    static let ReadKey = DispatchSpecificKey<String>()
    static let ReadValue = "READ_QUEUE_SPECIFI_VALUE"
}

// MQTT Clietn session 
// implment send/recv
final class Session {
