(map consume (seque (produce-lazily)))

On Friday, June 15, 2012 6:44:39 PM UTC-7, Warren Lynn wrote:
>
>
> What I want to do is something I probably have done dozens of times in 
> C++: two threads, one thread putting items in a queue, another taking it 
> out (FIFO). How to do it in Clojure? I am at a loss. I thought about a few 
> options:
>
> 1. "watches", but it cannot change the queue itself (can only watch). 
> plus, I am not sure watch function will run in another thread
> 2. "agent", but how to notify the consumer thread when there is new item? 
> How to block the consumer thread when there is no items in the queue?
> 3.  Ping-pong promises: so the producer delivers a promise to the 
> consumer, and the consumer immediately deliver another promise to the 
> producer to acknowledge the receipt so the producer can move on. But that 
> will prevent the producer to put the next item into the queue before the 
> consumer finish its processing, so not exactly concurrent.
>
> I cannot believe I am the first one to encounter this. Can anyone suggest 
> some idiomatic solution for the above? Thank you.
>
>
>
>

-- 
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

Reply via email to