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