[defer/thread_pool] - added again to boost vault

Hello, because on the user list a library which allows reuse of threads was requested I've added the defer library, originally developed by Simon Meiklejohn, to the boost vault (concurrent programming - I don't know why it was removed?). I've modified the library a little bit - a threaded queue for the thread pool was added. Maybe we can discuss the solution?! regards, Oliver

Hello Oliver,
because on the user list a library which allows reuse of threads was requested I've added the defer library, originally developed by Simon Meiklejohn, to the boost vault (concurrent programming - I don't know why it was removed?).
Sometime ago I searched for this lib and -of course- I did not find it :-/ In the meantime I developed my own thread pool library based on boost::threads. It's available at http://threadpool.sourceforge.net and already used by several projects. The framework is extensible and easy-to-use (in case you like boost::function / bind). At the moment I'm working on a task adaptor for combining parallel and sequential tasks e.g. (t1 | t2) & t3. I'm going to take a look at the defer lib soon and would like to discuss about a threadpool solution for boost. Best regards, Philipp

<Oliver.Kowalke <at> qimonda.com> writes:
because on the user list a library which allows reuse of threads was requested I've added the defer library, originally developed by Simon Meiklejohn, to the boost vault (concurrent programming - I don't know why it was removed?).
I removed the library myself - i hadn't detected much active interest (sorry if i got that wrong) and an unusually selective reset of download counters triggered a paranoid response. Happy to see it back up, and willing to assist ongoing development if required. I can't help thinking that the toolkits on top of threading could be unified somehow - after all they all contain ways of executing 'units of work' on some kind of 'execution context' (of which threads and thread pools form examples) subject to conditions (e.g. restrictions on concurrency, serialisation order). An explicit separation of concepts at this level of abstraction seems useful in terms of recombination into higher level libraries (e.g. ASIO and statechart, futures) and also useful in their own right. Seems analogous to the STL separation of algorithms/iterators/containers which has been deemed a good thing. Simon
participants (3)
-
Oliver.Kowalke@qimonda.com
-
Philipp Henkel
-
Simon Meiklejohn