Sascha Seewald wrote:
yeah! i'd like to see this layer provide more syncronisation related functionality like:
- multi threaded containers
like a generic work item queue that buffers between threads, and should allow for fixed size (blocks when full), growable (but bounded) and 'unlimited' size policies. This would allow for the pipeline model.
- futures - locking_ptr
Isn't this what shared_ptr already does... I'd like to see a shared ptr without locking :-) I'd maybe like something layered upon the thread group concept that handles event notifications for the group of threads tied in with the work queue idea. This should work in a generic way so that you would not need to know if it is a single thread or a collection of them available to do the work (Boss-Worker Model) It may be you wish to share the thread groups by considering the type of work done, e.g. separating I/O threads from CPU bound threads by putting them in different pools. Under the pipeline model you could then have separate queues for each stage which signal the appropriate container of the type of thread that there is work to do. This is an off the top of my head formulation which is never a good idea in parallel programming.... so may need refinement :-) Kevin -- | Kevin Wheatley, Cinesite (Europe) Ltd | Nobody thinks this | | Senior Technology | My employer for certain | | And Network Systems Architect | Not even myself |