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. |
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.