synchro.h File Reference

#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 Documentation

#define MAX_THR_REASONABLE   1000

#define NO_MEMBER_TEMPLATES


Generated on Tue Sep 25 10:20:30 2007 for rpa by  doxygen 1.4.7