   dsbdp.local-data-processing-pipeline
   (:require [dsbdp.data-processing-dsl :refer :all])
   (:import
-    (dsbdp LocalTransferContainer ProcessingLoop)
+    (dsbdp Counter LocalTransferContainer ProcessingLoop)
     (java.util.concurrent ArrayBlockingQueue BlockingQueue LinkedBlockingQueue LinkedTransferQueue TransferQueue)))
 
 

;  `(ArrayBlockingQueue. *queue-size*))

(defmacro enqueue
  [^TransferQueue queue data]
;  [^BlockingQueue queue data]
;  `(.put ~queue ~data))
  `(.transfer ~queue ~data))

                                (out-fn nil nil)))
                            (catch InterruptedException e
                              (if @running
                                (throw e))))))
        in-counter (Counter.)
        in-drop-counter (Counter.)]
    (.start out-proc-loop)
    {:interrupt (fn []
                  (reset! running false)
