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