 
 (defmacro take-from-queue
   [queue]
-  `(.take ~queue))
+  `(loop []
+     (if (not (.isEmpty ~queue))
+       (.remove ~queue)
+       (do
+         (Thread/yield)
+         (recur)))))
+;  `(.take ~queue))
 
 
 

  [queue data enqueued-counter dropped-counter]
  (println "Enqueueing data via:")
  (let [expr (condp (fn [^String v ^String s] (.endsWith s v)) queue-setup
               "put" `(.put ~queue ~data)
               "put-counted-yield" `(if (< (.size ~queue) queue-size)
                                      (do

                (do
                  (println file-name "not found. Using default.")
;                  "ArrayBlockingQueue_put"))]
;                  "ArrayBlockingQueue_put-counted-yield"))]
                  "ArrayBlockingQueue_add-counted-yield"))]
;                  "ArrayBlockingQueue_offer"))]
;                  "ArrayBlockingQueue_offer-counted-yield"))]
;                  "LinkedTransferQueue_transfer"))]
