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

    case invaildPacket
}

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

    
    // sync method to read length
    private func readLength() throws -> Int {
        assert(DispatchQueue.getSpecific(key: QueueSpecifi.ReadKey) == QueueSpecifi.ReadValue,
               "this method should only be run at sepcific queue")
        
        guard let socket = socket else {
            throw SessionError.socketIsNil
