I just came across this thread (and also [1]) when I was googling for a way to customize the Clojure agents. Were any of these 'post 1.2' suggestions reconsidered since then? (I see they haven't been implemented yet).
Marek. [1] https://groups.google.com/forum/?fromgroups#!topic/clojure-dev/qDfxSoesp4o On Monday, July 26, 2010 2:54:29 AM UTC+2, Alex Miller wrote: > > Hey Dennis, > > I suggested some of the same ideas here (http://tech.puredanger.com/ > 2010/06/08/clojure-agent-thread-pools/<http://tech.puredanger.com/2010/06/08/clojure-agent-thread-pools/>) > > and Rich said that these > seemed like good suggestions post-1.2. I think allowing you to modify > the agent thread pools after construction seems possibly dangerous > from a concurrency point of view, but maybe that would be ok. > > Alex > > > On Jul 25, 3:47 am, dennis <killme2...@gmail.com> wrote: > > Agent use two thread pools to execute actions,send use a fixed thread > > pool (2+cpus threads),and send-off use a cached thread pool.These > > pools are global in clojure system. > > > > I think the Agent should allow users to customize the thread pool, > > if no custom, then use the global thread pool. > > Why do I need a custom thread pool? > > First, the default thread pool is global, send use the thread pool > > is a fixed size cpus +2, is likely to become the system bottleneck > > sometime. Although you can use the send-off, use the cache thread > > pool, but in a real world application, I can not use the cache thread > > pool, which will introduce the risk of OutOfMemoryError, normally I > > like to use a fixed-size thread pool. > > > > Second, the actions which global thread pool execute are from a > > variety of agents, the actions are not homogeneous, and can not > > maximize the efficient use of the thread pool, we hope that you can > > specify different agent to isolate a particular thread pool to > > maximize the use of thread pool . > > > > I think Agent could add two new functions: > > > > (set-executor! agent (java.util.concurrent.Executors/ > > newFixedThreadPool 2)) > > (shutdown-agent agent) > > > > set-executor! is to set the agent's custom thread pool,and shutdown- > > agent to shutdown the agent's custom thread pool. -- 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