Boost logo

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