 (def OP_WRITE (SelectionKey/OP_WRITE))
 
 (set! *warn-on-reflection* true)
-;; (set! *unchecked-math* :warn-on-boxed)
 
 (timbre/refer-timbre)
 
 (def cluster-hash-slots 16384)
+
+(defn address? [x]
+  (instance? InetSocketAddress x))
 
 (defn drain
   "Drains items from q into a new collection."


          (.isConnected channel)
          (let [k (.keyFor channel selector)]
            (do (debug address "op is incomplete" (:write-buffer op))
                (.addLast write-queue op)
                (set-op! k OP_WRITE)))


   (let [current-ops (.interestOps k)
         new-ops     (bit-and current-ops (bit-not x))]
     (when (not= current-ops new-ops)
       (trace (remote-address k) "ignoring op" (ops->str current-ops) "->" (ops->str new-ops)))
     (.interestOps k new-ops))))

(defmulti dispatch
