       self.log("got new socket: \(newSock) nio=\(newSock.isNonBlocking)")
       newSock.isNonBlocking = true
       
-      dispatch_async(dispatch_get_global_queue(0, 0)) {
+      dispatch_async(self.lockQueue) {
         // Note: we need to keep the socket around!!
         self.openSockets[newSock.fd!] = newSock
       }

      newSock.onRead  { self.handleIncomingData($0, expectedCount: $1) }
             .onClose { ( fd: CInt ) -> Void in
        // we need to consume the return value to give peace to the closure
        dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in
          _ = self.openSockets.removeValueForKey(fd)
        }
      }


  let port         : Int
  var listenSocket : PassiveSocket?
  let lockQueue    = dispatch_queue_create("com.ari.socklock", nil)!
  var openSockets  = Dictionary<CInt, ActiveSocket>(minimumCapacity: 8)
  var appLog       : ((String) -> Void)?
  
