8#ifndef HPP_ALIB_THREADS_RECURSIVELOCK
9#define HPP_ALIB_THREADS_RECURSIVELOCK 1
18#if ALIB_DEBUG_CRITICAL_SECTIONS
24namespace alib {
namespace threads {
66 #if !ALIB_DEBUG && !DOXYGEN
67 std::recursive_mutex
mutex;
75 std::recursive_timed_mutex
mutex;
84 #if ALIB_DEBUG_CRITICAL_SECTIONS
105 #if ALIB_DEBUG || DOXYGEN
138 #if ALIB_DEBUG || DOXYGEN
virtual ALIB_API bool DCSIsAcquired() const override
DbgLockAsserter Dbg
The debug tool instance.
virtual ALIB_API bool DCSIsSharedAcquired() const override
ALIB_API void AcquireRecursive(ALIB_DBG_TAKE_CI)
std::recursive_mutex mutex
ALIB_API void ReleaseRecursive(ALIB_DBG_TAKE_CI)
ALIB_API bool TryAcquire(ALIB_DBG_TAKE_CI)
~RecursiveLock() override
Destructor. With debug-compilations, asserts that this lock is not acquired.
#define ALIB_ASSERT_MODULE(modulename)
#define ALIB_FORCE_INLINE
#define ALIB_DEBUG_CRITICAL_SECTIONS
void AssertNotOwned(const CallerInfo &assertCI, const CallerInfo &ci, const NString &headline)