8#ifndef HPP_ALIB_THREADS_RECURSIVETIMEDLOCK
9#define HPP_ALIB_THREADS_RECURSIVETIMEDLOCK 1
18#if ALIB_DEBUG_CRITICAL_SECTIONS
25namespace alib {
namespace threads {
70 std::recursive_timed_mutex
mutex;
78 #if ALIB_DEBUG_CRITICAL_SECTIONS
99 #if ALIB_DEBUG || DOXYGEN
186 #if ALIB_DEBUG || DOXYGEN
virtual ALIB_API bool DCSIsAcquired() const override
ALIB_API bool TryAcquireTimed(const Ticks::Duration &waitDuration, const CallerInfo &ci)
DbgLockAsserter Dbg
The debug tool instance.
virtual ALIB_API bool DCSIsSharedAcquired() const override
bool TryAcquireTimed(const Ticks::TTimePoint &pointInTime, const CallerInfo &ci)
bool TryAcquireTimed(const Ticks::Duration::TDuration &waitDuration, const CallerInfo &ci)
ALIB_API void AcquireRecursive(ALIB_DBG_TAKE_CI)
ALIB_API void ReleaseRecursive(ALIB_DBG_TAKE_CI)
~RecursiveTimedLock() override
Destructor. With debug-compilations, asserts that this lock is not acquired.
ALIB_API bool TryAcquire(ALIB_DBG_TAKE_CI)
bool TryAcquireTimed(const Ticks &pointInTime, const CallerInfo &ci)
std::recursive_timed_mutex mutex
The internal object to lock on.
typename std::chrono::steady_clock::time_point TTimePoint
#define ALIB_ASSERT_MODULE(modulename)
#define ALIB_FORCE_INLINE
#define ALIB_DEBUG_CRITICAL_SECTIONS
threads::Thread Thread
Type alias in namespace alib.
time::Ticks Ticks
Type alias in namespace alib.
void AssertNotOwned(const CallerInfo &assertCI, const CallerInfo &ci, const NString &headline)