#include <iterator>
#include <limits.h>
#include <rpa/configuration.h>
#include <rpa/testing.h>
#include <rpa/guard.h>
#include <rpa/atomic.h>
#include <rpa/cas.h>
#include <rpa/counted_ptr.h>
Namespaces | |
namespace | rpa |
Classes | |
struct | rpa::thread_exception< Thread > |
Signals when a thread could not be started. Specializable on the thread. More... | |
class | rpa::mutex_void |
'Do-nothing' mutex, to be used with fake threads, for testing purpose. More... | |
struct | rpa::mutex_void::exception_t |
class | rpa::exception_errno |
A simple exception class for reporting 'errno' errors. More... | |
class | rpa::mutex_count_base |
Does the actual counting for the template class 'thread_count'. More... | |
struct | rpa::mutex_count< Mutex > |
Wraps a mutex to count the number of times it is un-/try/-locked. More... | |
struct | rpa::thread_crea |
Pseudo-parallel thread class for making deterministic tests. More... | |
class | rpa::thread_join |
Pseudo-parallel thread class for making deterministic tests. More... | |
class | rpa::thread_counter_base |
Implementation of the base class of all template 'thread_counter'. More... | |
class | rpa::thread_counter< Thread > |
A class wrapper for threads compliant with RPA interface (create/join/cancel). More... | |
class | rpa::thread_pool< Thr > |
class | rpa::thread_tree_core |
The non-templatized part of thread_tree. More... | |
class | rpa::thread_tree_base< ThrIter > |
Common class for all thread_tree. More... | |
class | rpa::thread_tree_base< ThrSub[ThrNb] > |
Specialization if sub-threads are stored in a C-array. For simple programs. More... | |
class | rpa::thread_tree_base< thread_pool< ThrPooled > > |
When specialized with 'thread_pool', actually creates a thread pool. More... | |
class | rpa::thread_copy< ThrMain > |
This stays allocated as long as the thread is running. More... | |
class | rpa::thread_tree< ThrIter, ThrMain > |
Models the sub-threads set given to functors, themselves called by sub-threads. More... | |
class | rpa::thread_tree< ThrIter, ThrMain * > |
Points on a main 'head' thread which is never copied but modified. More... | |
struct | rpa::thread_tree< void, void > |
Equivalent to void, but makes coding simpler, because homogeneous. More... | |
struct | rpa::thread_tree< ThrIter, void > |
Runs a functor with several sub-threads, but still controlled by the current thread. More... | |
class | rpa::thread_tree< void, ThrMain * > |
Executes the functor in a single sub-thread. More... | |
class | rpa::thread_tree< void, ThrMain > |
Executes the functor in a single sub-thread. More... | |
class | rpa::thread_array< SubThr > |
This makes simpler the allocation of a pool of threads. More... | |
class | rpa::thread_array< SubThr >::thr_arr |
This structure stores the threads. It is accessed with a counted_ptr. More... | |
struct | rpa::thread_array< SubThr >::thr_arr::exception_mem |
Thrown if the threads could not be allocated. More... | |
struct | rpa::thread_array< void > |
This applies when there are no subthreads. More... | |
class | rpa::future< Ftor, Thr > |
Allows the execution of a functor in a thread. More... | |
class | rpa::present< ThreadTree, Ftor > |
Holds all the data needed to start a thread with a functor into it. More... | |
class | rpa::spawn< ThreadTree, Ftor > |
class | rpa::target< ResultType, Allocator > |
struct | rpa::target< ResultType, Allocator >::holder_base |
class | rpa::target< ResultType, Allocator >::holder< PresentType > |
class | rpa::thread_stack< Ftor, Thr > |
Base class for all the objects 'loop' of all algorithms. More... | |
class | rpa::thread_stack< Ftor, Thr >::node |
class | rpa::thread_stack< Ftor, Thr >::iterator |
Defines | |
#define | NO_MEMBER_TEMPLATES |
#define | MAX_THR_REASONABLE 1000 |
Typedefs | |
typedef unsigned long | rpa::thr_nb_t |
A number of threads. | |
typedef void *(*) | rpa::thread_func_t (void *) |
The kind of function pointer that a thread executes. | |
Functions | |
template<class ThrIter> | |
thread_tree< ThrIter, void > | rpa::make_thread_tree (size_t thrNb, ThrIter thrIter) |
When the master thread is 'void', the current thread controls the sub-threads. | |
template<class ThrIter, class ThrMain> | |
thread_tree< ThrIter, ThrMain * > | rpa::make_thread_tree (size_t thrNb, const ThrIter &thrIter, ThrMain *ptrThrMain) |
Here, a thread is first started, which will later start the sub-threads. | |
template<class ThrIter, class ThrMain> | |
thread_tree< ThrIter, ThrMain > | rpa::make_thread_tree (size_t thrNb, const ThrIter &thrIter, const ThrMain &refThrMain) |
Here, a thread is first started, which will later start the sub-threads. | |
template<class ThrMain> | |
thread_tree< void, ThrMain * > | rpa::make_thread_tree (ThrMain *ptrThrMain) |
Here, a thread is first started, which will later start the sub-threads. | |
template<class ThrMain> | |
thread_tree< void, ThrMain > | rpa::make_thread_tree (const ThrMain &refThrMain) |
Here, a thread is first started, which will later start the sub-threads. |
#define MAX_THR_REASONABLE 1000 |
#define NO_MEMBER_TEMPLATES |