|
Boost : |
From: k-oli_at_[hidden]
Date: 2008-06-11 15:21:17
Hi,
I follow the discussion about boost.future since the review request form
Braddock.
I'm using Braddocks future implementation for my threadpool library - may you
are interessted in (I've uploaded two versions in the boost vault/Concurrent
Programming).
The library provides:
- thread creation policies: determines the managemnt of worker threads
- fixed set of threads in pool
- create workerthreads on demand (depending on context)
- let worker threads ime out after certain idle time
- channel policies: manages access to queued tasks
- bounded channel with high and low watermark for queuing tasks
- unbounded channel with unlimited numer of queued tasks
- rendezvous syncron hand-over between producer and consumer threads
- queueing policy: determines how tasks will be removed from channel
- FIFO
- LIFO
- priority queue (attribute assigned to task)
- smart insertions and extractions (for instance remove oldest task with
certain attribute by newst one)
- tasks can be chained and lazy submit of taks is also supported (thanks to
Braddocks future library).
I've uploaded two versions.
In version 1 a future is returned by submit of a task. Canceling the future
means removing the task form the channel if it is still pending.
Version 2 returns a task object from the submit function. The task it self can
be interrupted if its is cooperative (means it has some interruption points
in its code -> this_thread::interruption_point() ).
Oliver
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk