Boost logo

Boost :

Subject: [boost] [interthreads] Pre-review request
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2009-10-19 17:42:46


I have requested the Review Wizards to include Boost.Interthreads library on the review schedule.
Even if there were not too much interest for this library on this ML, there were more than 1000 dowloads from the Boost Vault.
I'm open to reduce the scope of the library, if there are some parts that are not enough generic.

I would appreciate it if people could participate to this Pre-review, reading the documentation, testing on their compiler, ....
Every comment will help me a lot to improve the library.

BTW, I'm looking for a review manager.

Thanks in advance,

:Author: Vicente J. Botet Escribá

:Review Manager: ???

:Download: `Boost Vault: <>
Boost Sandbox:
Html doc also included the Vault package


Boost.InterThreads extends Boost.Threads adding thread setup/cleanup decorator, thread specific shared pointer, thread keep alive mechanism and thread tuples.

    * thread decorator: thread_decorator allows to define setup/cleanup functions which will be called only once by thread: setup before the thread function and cleanup at thread exit.
    * thread specific shared pointer: this is an extension of the thread_specific_ptr providing access to this thread specific context from other threads. As it is shared the stored pointer is a shared_ptr instead of a raw one.
    * thread keep alive mechanism: this mechanism allows to detect threads that do not prove that they are alive by calling to the keep_alive_point regularly. When a thread is declared dead a user provided function is called, which by default will abort the program.
    * thread tuple: defines a thread groupe where the number of threads is know statically and the threads are created at construction time.
    * set_once: a synchonizer that allows to set a variable only once, notifying to the variable value to whatever is waiting for that.
    * thread_tuple_once: an extension of the boost::thread_tuple which allows to join the thread finishing the first, using for that the set_once synchronizer.
    * thread_group_once: an extension of the boost::thread_group which allows to join the thread finishing the first, using for that the set_once synchronizer.

(thread_decorator and thread_specific_shared_ptr) are based on the original implementation of threadalert written by Roland Schwarz.

Boost list run by bdawes at, gregod at, cpdaniel at, john at