     }
   }
 
-  // MARK: - Private
-
   private var nextMsgid: UInt32 = 0
 
   private var socket: Socket?
   private var thread: Thread?
-  private let queue = DispatchQueue(
-    label: String(reflecting: RxMsgpackRpc.self),
-    qos: .userInitiated
-  )
+  private let queue: DispatchQueue
 
   private var stopped = true
   private var singles: [UInt32: SingleResponseObserver] = [:]

      return
    }

    guard let rawType = array[0].uint64Value,
      let type = MessageType(rawValue: rawType)
    else {
      self.streamSubject.onNext(.error(
        value: unpacked, msg: "Could not get the type of the message"
      ))

        return
      }

      guard let method = array[1].stringValue, let params = array[2].arrayValue else {
        self.streamSubject.onNext(.error(
          value: unpacked,
          msg: "Could not get the method and params"
