12#include <shared_mutex>
20using std::shared_mutex;
23using std::shared_lock;
24using std::unique_lock;
26#ifdef JPH_PLATFORM_BLUE
42 inline bool try_lock()
75 inline bool try_lock()
95 inline void lock_shared()
117#if defined(JPH_ENABLE_ASSERTS) || defined(JPH_PROFILE_ENABLED) || defined(JPH_EXTERNAL_PROFILE)
127 if (MutexBase::try_lock())
152#ifdef JPH_ENABLE_ASSERTS
171 if (SharedMutexBase::try_lock())
184 SharedMutexBase::lock();
193 SharedMutexBase::unlock();
196#ifdef JPH_ENABLE_ASSERTS
208 SharedMutexBase::lock_shared();
#define JPH_SUPPRESS_WARNINGS_STD_BEGIN
Definition Core.h:372
#define JPH_SUPPRESS_WARNINGS_STD_END
Definition Core.h:384
#define JPH_NAMESPACE_END
Definition Core.h:367
#define JPH_NAMESPACE_BEGIN
Definition Core.h:361
#define JPH_IF_ENABLE_ASSERTS(...)
Definition IssueReporting.h:35
#define JPH_ASSERT(...)
Definition IssueReporting.h:33
AllocateFunction Allocate
Definition Memory.cpp:59
shared_mutex SharedMutexBase
Definition Mutex.h:113
mutex MutexBase
Definition Mutex.h:112
#define JPH_PROFILE(...)
Definition Profiler.h:251
void unlock()
Definition Mutex.h:145
bool try_lock()
Definition Mutex.h:124
void lock()
Definition Mutex.h:135
Class that makes another class non-copyable. Usage: Inherit from NonCopyable.
Definition NonCopyable.h:11
void lock_shared()
Definition Mutex.h:203
void unlock()
Definition Mutex.h:189
void lock()
Definition Mutex.h:179
bool try_lock()
Definition Mutex.h:168