       defer {
         self.reading -= 1
       }
-//      let timer = Clock.createTimer()
       guard let json = JSON(data: text.dataUsingEncoding(NSUTF8StringEncoding)!).dictionary else {
         print("Got message could not decode as JSON: ", text)
         return

      _dumpTimer = Clock.createTimer()
    }
    

    if reading < 0 {
      fatalError()
    }

      let count = _subscriptions[name] ?? 0
      if count == 0 {
        print("Warning: Count mismatch for variable ", name)
        print("Data: ", _subscriptions)
        continue
      }
      _subscriptions[name] = count - 1
    }
    // Unsubscribe from anything with a count of zero
    let toUnsubscribe = _subscriptions.filter({(k,v) in v == 0}).map({$0.0})
    if !toUnsubscribe.isEmpty {
      print("Unsubscribing really from " + toUnsubscribe.joinWithSeparator(", "))
      let list = toUnsubscribe.map({"\"" + $0 + "\""}).joinWithSeparator(",")
      let api = "\"-\": [\(list)]"
      _socket?.writeString("{\(api)}")
    }
  }
  
  func oneshot(name : String) {
