#include <synchro.h>
Inheritance diagram for rpa::thread_tree< ThrIter, ThrMain >:
Public Types | |
typedef thread_copy< ThrMain > | head_thread_type |
typedef thread_tree_base< ThrIter > | ttb_t |
Public Member Functions | |
thread_tree (const ThrMain &refThrMain, thr_nb_t thrNb, const ThrIter &thrIter) | |
The iterator is passed a const reference for extra performance. | |
thread_tree< ThrIter, void > | sub_tree (void) const |
This returns the same tree without the top-level thread. | |
head_thread_type * | head (void) const |
Same interface whether the head-thread is a pointer or a copy. | |
Private Attributes | |
head_thread_type * | _ptrThr |
This object will destroy itself after a join, in future::sync_end. |
In other words, it implements recursive multi-threading, each multithreading level being represented by a level in the threads tree. Each level of the threads-tree has the same interface, but the types of these levels can be totally different, and are determined at compile time. The main thread can be copied: It may be a proxy.
typedef thread_copy<ThrMain> rpa::thread_tree< ThrIter, ThrMain >::head_thread_type |
typedef thread_tree_base< ThrIter > rpa::thread_tree< ThrIter, ThrMain >::ttb_t |
rpa::thread_tree< ThrIter, ThrMain >::thread_tree | ( | const ThrMain & | refThrMain, | |
thr_nb_t | thrNb, | |||
const ThrIter & | thrIter | |||
) | [inline] |
The iterator is passed a const reference for extra performance.
head_thread_type* rpa::thread_tree< ThrIter, ThrMain >::head | ( | void | ) | const [inline] |
Same interface whether the head-thread is a pointer or a copy.
thread_tree<ThrIter,void> rpa::thread_tree< ThrIter, ThrMain >::sub_tree | ( | void | ) | const [inline] |
This returns the same tree without the top-level thread.
head_thread_type* rpa::thread_tree< ThrIter, ThrMain >::_ptrThr [private] |
This object will destroy itself after a join, in future::sync_end.