Hey, I was using seque with a BlockingQueue instead of an integer, when I noticed it does not work for PriorityBlockingQueue and SynchronousQueue.
I submitted a bug[1] and started a new implementation[2] to work around the problems, but there is a whole concurrency jungle out there as soon as you leave persistent data structures behind. So the thing is, poll, peek and locking do not work for SynchronousQueue and poisoning the queue does not work for PriorityBlockingQueue because the sorting going on. I'm currently interrupting the consumer when we're done, like here[3]. It works most of the time, but sometimes it still hangs. I checked that interrupting works when it happens before as well as during the .take, so I can't see how it would hang. I could really use some help making this work, because I'm stuck and out of ideas. I devised this form to test it repeatedly and manually (.interrupt cur) later. (future (def cur (Thread/currentThread)) (reduce (partial merge-with +) (map #(dissoc % :type) (repeatedly 100 #(run-tests 'test))))) [1] http://dev.clojure.org/jira/browse/CLJ-776 [2] https://gist.github.com/934781 [3] http://stackoverflow.com/questions/5378391/closing-a-blocking-queue Groeten, Pepijn de Vos -- Sent from my iPod Shuffle http://pepijndevos.nl -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en