Synchronisation Library
[Libraries]


Detailed Description

Created: 3rd June 2006 Updated: 14th January 2007.

This library contains functions and classes that assist in multithreading and/or multitasking.

The library consists of the following:


Modules

 Synchronisation Control Shims
 These shims control the behaviour of synchronisation objects.

Classes

class  checkout_token
 This class acts as a. More...
struct  synchronisable_object_tag
 Denotes that a deriving class is a synchronisation type. More...
struct  critical_section_tag
 Denotes that a deriving class can be used as a critical section, i.e. More...
struct  critical_section
 Concept tag class that denotes that an object may be utilised to serialise access to a critical section of code. More...
struct  lock_traits
 Traits class for lockable objects. More...
struct  lock_invert_traits
 Traits class for inverting the lock status of lockable objects. More...
struct  lock_traits_inverter
 Traits inverter class for inverting the lock behaviour of lockable traits types. More...
class  lock_scope
 This class scopes the lock status of a lockable type. More...
class  null_mutex
 This class provides a null implementation of the mutex model. More...
class  singlethreaded_tss_index
 Interface-compatible single-threaded replacement for unixstl::tss_index, winstl::tss_index and platformstl::tss_index. More...
struct  spin_yield
 This policy causes spin mutex types default behaviour to be to yield the current time slice when the spin variable cannot be acquired. More...
struct  spin_no_yield
 This policy causes spin mutex types default behaviour to be to not yield the current time slice when the spin variable cannot be acquired. More...
class  process_mutex
 This class provides an implementation of the mutex model based on the PTHREADS pthread_mutex_t. More...
struct  process_mutex_lock_traits
 Traits for the process_mutex class. More...
class  semaphore
 This class acts as an semaphore based on the POSIX semaphore object. More...
struct  semaphore_lock_traits
 Traits for the semaphore class. More...
class  spin_mutex_base
 This class provides an implementation of the mutex model based on a spinning mechanism. More...
struct  spin_mutex_lock_traits
 Traits for the spin_mutex class. More...
class  thread_mutex
 This class provides an implementation of the mutex model based on the PTHREADS mutex. More...
struct  thread_mutex_lock_traits
 Traits for the thread_mutex class. More...
class  tss_exception
 Indicates that a TSS key cannot be allocated. More...
class  tss_index
 Wrapper for a UNIX PThreads TSS key. More...
class  event
 Class which wraps the Win32 EVENT synchronisation object. More...
class  process_mutex
 This class acts as an inter-process mutex based on the Win32 mutex kernel object. More...
struct  process_mutex_lock_traits
 Traits for the process_mutex class. More...
class  semaphore
 This class acts as an semaphore based on the Win32 kernel semaphore object. More...
struct  semaphore_lock_traits
 Traits for the semaphore class. More...
class  spin_mutex_base
 This class provides an implementation of the mutex model based on a spinning mechanism. More...
struct  spin_mutex_lock_traits
 Traits for the spin_mutex class. More...
class  thread_mutex
 This class provides an implementation of the mutex model based on the Win32 CRITICAL_SECTION. More...
struct  thread_mutex_lock_traits
 Traits for the thread_mutex class. More...
class  tss_exception
 Indicates that a TSS key cannot be allocated. More...
class  tss_index
 Wrapper for a Win32 TSS key (TLS index). More...

Functions

DWORD w4mo_helper_8 (HANDLE h0, HANDLE h1, HANDLE h2, HANDLE h3, HANDLE h4, HANDLE h5, HANDLE h6, HANDLE h7, bool bWaitAll, ws_dword_t timeout)
 [IMPLEMENTATION]
template<typename L0, typename L1, typename L2, typename L3, typename L4, typename L5, typename L6, typename L7>
DWORD wait_for_multiple_objects (L0 &l0, L1 &l1, L2 &l2, L3 &l3, L4 &l4, L5 &l5, L6 &l6, L7 &l7, bool bWaitAll, ws_dword_t timeout)
 Execute wait for 8 synchronisation objects of heterogeneous types.
template<typename L0, typename L1, typename L2, typename L3, typename L4, typename L5, typename L6>
DWORD wait_for_multiple_objects (L0 &l0, L1 &l1, L2 &l2, L3 &l3, L4 &l4, L5 &l5, L6 &l6, bool bWaitAll, ws_dword_t timeout)
 Execute wait for 7 synchronisation objects of heterogeneous types.
template<typename L0, typename L1, typename L2, typename L3, typename L4, typename L5>
DWORD wait_for_multiple_objects (L0 &l0, L1 &l1, L2 &l2, L3 &l3, L4 &l4, L5 &l5, bool bWaitAll, ws_dword_t timeout)
 Execute wait for 6 synchronisation objects of heterogeneous types.
template<typename L0, typename L1, typename L2, typename L3, typename L4>
DWORD wait_for_multiple_objects (L0 &l0, L1 &l1, L2 &l2, L3 &l3, L4 &l4, bool bWaitAll, ws_dword_t timeout)
 Execute wait for 5 synchronisation objects of heterogeneous types.
template<typename L0, typename L1, typename L2, typename L3>
DWORD wait_for_multiple_objects (L0 &l0, L1 &l1, L2 &l2, L3 &l3, bool bWaitAll, ws_dword_t timeout)
 Execute wait for 4 synchronisation objects of heterogeneous types.
template<typename L0, typename L1, typename L2>
DWORD wait_for_multiple_objects (L0 &l0, L1 &l1, L2 &l2, bool bWaitAll, ws_dword_t timeout)
 Execute wait for 3 synchronisation objects of heterogeneous types.
template<typename L0, typename L1>
DWORD wait_for_multiple_objects (L0 &l0, L1 &l1, bool bWaitAll, ws_dword_t timeout)
 Execute wait for 2 synchronisation objects of heterogeneous types.


Function Documentation

DWORD winstl::w4mo_helper_8 ( HANDLE  h0,
HANDLE  h1,
HANDLE  h2,
HANDLE  h3,
HANDLE  h4,
HANDLE  h5,
HANDLE  h6,
HANDLE  h7,
bool  bWaitAll,
ws_dword_t  timeout 
) [inline]

[IMPLEMENTATION]

References STLSOFT_NUM_ELEMENTS, and WINSTL_ASSERT.

Referenced by winstl::wait_for_multiple_objects().

DWORD winstl::wait_for_multiple_objects ( L0 &  l0,
L1 &  l1,
bool  bWaitAll,
ws_dword_t  timeout 
) [inline]

Execute wait for 2 synchronisation objects of heterogeneous types.

References winstl::get_synch_handle(), winstl::w4mo_helper_8(), WINSTL_ASSERT, and winstl_ns_qual.

DWORD winstl::wait_for_multiple_objects ( L0 &  l0,
L1 &  l1,
L2 &  l2,
bool  bWaitAll,
ws_dword_t  timeout 
) [inline]

Execute wait for 3 synchronisation objects of heterogeneous types.

References winstl::get_synch_handle(), winstl::w4mo_helper_8(), WINSTL_ASSERT, and winstl_ns_qual.

DWORD winstl::wait_for_multiple_objects ( L0 &  l0,
L1 &  l1,
L2 &  l2,
L3 &  l3,
bool  bWaitAll,
ws_dword_t  timeout 
) [inline]

Execute wait for 4 synchronisation objects of heterogeneous types.

References winstl::get_synch_handle(), winstl::w4mo_helper_8(), WINSTL_ASSERT, and winstl_ns_qual.

DWORD winstl::wait_for_multiple_objects ( L0 &  l0,
L1 &  l1,
L2 &  l2,
L3 &  l3,
L4 &  l4,
bool  bWaitAll,
ws_dword_t  timeout 
) [inline]

Execute wait for 5 synchronisation objects of heterogeneous types.

References winstl::get_synch_handle(), winstl::w4mo_helper_8(), WINSTL_ASSERT, and winstl_ns_qual.

DWORD winstl::wait_for_multiple_objects ( L0 &  l0,
L1 &  l1,
L2 &  l2,
L3 &  l3,
L4 &  l4,
L5 &  l5,
bool  bWaitAll,
ws_dword_t  timeout 
) [inline]

Execute wait for 6 synchronisation objects of heterogeneous types.

References winstl::get_synch_handle(), winstl::w4mo_helper_8(), WINSTL_ASSERT, and winstl_ns_qual.

DWORD winstl::wait_for_multiple_objects ( L0 &  l0,
L1 &  l1,
L2 &  l2,
L3 &  l3,
L4 &  l4,
L5 &  l5,
L6 &  l6,
bool  bWaitAll,
ws_dword_t  timeout 
) [inline]

Execute wait for 7 synchronisation objects of heterogeneous types.

References winstl::get_synch_handle(), winstl::w4mo_helper_8(), WINSTL_ASSERT, and winstl_ns_qual.

DWORD winstl::wait_for_multiple_objects ( L0 &  l0,
L1 &  l1,
L2 &  l2,
L3 &  l3,
L4 &  l4,
L5 &  l5,
L6 &  l6,
L7 &  l7,
bool  bWaitAll,
ws_dword_t  timeout 
) [inline]

Execute wait for 8 synchronisation objects of heterogeneous types.

References winstl::get_synch_handle(), winstl::w4mo_helper_8(), WINSTL_ASSERT, and winstl_ns_qual.


Generated on Thu Jun 10 08:58:19 2010 for STLSoft by  doxygen 1.5.6