what you were suggesting, if I understand correctly, is
re-implementing futures using agents instead of a thread pool.

send an action off to an agent to be run, return a promise, the action
delivers to the promise when the action completes. derefing the
promise blocks until the action is run to completion.

submit a Runnable/Callable to an executor, receive a Future. calls to
get on the future block until the Runnable/Callable runs to
completion.

http://www.phrases.net/phrase/6934

"Using agents when you want a thread pool gives the impression of ignorance."

On Sun, Sep 11, 2011 at 12:24 AM, Laurent PETIT <laurent.pe...@gmail.com> wrote:
> 2011/9/11 Kevin Downey <redc...@gmail.com>
>>
>> I hate to see agents used this way. If people want a thread pool they
>> should either use the ones provided by clojure, or create their own.
>
> That's right, the "agents" part of my answer is more a hack.
> But the more interesting point I wanted to bring to the table for the
> brainstorming was the use of dataflow variables (via promise/deliver). I'd
> be happy to have your thoughts on this, provided that you're able to choose
> more delicate words/judgements than "smacks of ignorance", which, even if
> there's a possibility that as a non native english speaker I'm interpreting
> the wrong way, seem rude and hard to swallow.
>
>>
>> Using agents when you want a thread pool smacks of ignorance.
>>
>>
>> http://download.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html
>>
>> You can tell when you should be using a threadpool/futures instead
>> agents when you don't use an agent as an identity over a series of
>> values.
>>
>> On Sat, Sep 10, 2011 at 11:14 PM, Laurent PETIT <laurent.pe...@gmail.com>
>> wrote:
>> > Hello,
>> > Would it make sense to use instead promise/deliver, and enque
>> > computations
>> > in order in agents queues ? (worse parallelism, but more control over
>> > the
>> > number of threads ?)
>> >
>> > 2011/9/10 Illim <illminou...@gmail.com>
>> >>
>> >> I'm a clojure beginner and from the future api , the only way I found
>> >> to create a future from another is to block the resulting future's
>> >> thread with 'deref'. I'm a little bit afraid of exhausting my thread
>> >> pool.
>> >> For example:
>> >> (def x (future 1))
>> >> (def y (future (+ 1 @x)))
>> >> y will block and consume a thread during x computation.
>> >>
>> >> --
>> >> 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
>> >
>> > --
>> > 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
>>
>>
>>
>> --
>> And what is good, Phaedrus,
>> And what is not good—
>> Need we ask anyone to tell us these things?
>>
>> --
>> 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
>
> --
> 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



-- 
And what is good, Phaedrus,
And what is not good—
Need we ask anyone to tell us these things?

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