carb::tasking::SpinSharedMutex
Defined in carb/tasking/TaskingUtils.h
- 
struct SpinSharedMutex
- Spin lock conforming to C++ named requirements of SharedMutex. - Warning - This implementation is non-recursive. - Public Functions - 
constexpr SpinSharedMutex() = default
- Constructor. 
 - 
inline void lock()
- Spins until the shared mutex is exclusive-locked. - Warning - It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa. 
 - 
inline bool try_lock()
- Attempts to exclusive-lock the shared mutex immediately without spinning. - Warning - It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa. - Returns
- true if the mutex was exclusive-locked; false if no exclusive lock could be obtained. 
 
 - 
inline void unlock()
- Unlocks the mutex previously exclusive-locked by this thread/task. - Warning - It is undefined behavior to unlock a mutex that is not owned by the current thread or task. 
 - 
inline bool try_lock_shared()
- Attempts to shared-lock the shared mutex immediately without spinning. - Warning - It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa. - Returns
- true if the mutex was shared-locked; false if no shared lock could be obtained. 
 
 - 
inline void lock_shared()
- Spins until the shared mutex is shared-locked. - Warning - It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa. 
 - 
inline void unlock_shared()
- Unlocks the mutex previously shared-locked by this thread/task. - Warning - It is undefined behavior to unlock a mutex that is not owned by the current thread or task. 
 
- 
constexpr SpinSharedMutex() = default