8#ifndef HPP_ALIB_THREADS_THREADLOCKNR
9#define HPP_ALIB_THREADS_THREADLOCKNR 1
11#if !defined (HPP_ALIB_LANG_OWNER)
17#if !defined (HPP_ALIB_STRINGS_LOCALSTRING)
21#if !defined(HPP_ALIB_THREADS_THREAD)
26#if !defined (_GLIBCXX_MUTEX) && !defined(_MUTEX_)
33#define ALIB_LOCK ALIB_OWN(*this)
34#define ALIB_LOCK_WITH(lock) ALIB_OWN(lock)
37namespace alib {
namespace threads {
128 "Multiple acquirements of ThreadLockNR are forbidden." )
144 "Release without prior acquisition" )
147 "Release while ownership is with a different thread.\n" <<
176 "Changing safeness while acquired by a different thread.\n" <<
183 "Changing safeness while acquired (by this thread)." )
void SetSafeness(lang::Safeness pSafeness)
void Acquire(const NCString &dbgFile, int dbgLine, const NCString &dbgFunc)
lang::Safeness GetSafeness() const
ThreadLockNR(lang::Safeness pSafeness=lang::Safeness::Safe)
std::thread::id dbgIsAcquiredBy
static Thread * GetCurrent()
#define ALIB_ASSERT_MODULE(modulename)
#define ALIB_ASSERT_ERROR(cond,...)
@ Safe
Do it or treat it with safety.
ALIB_API Thread * getThread(std::thread::id c11ID)
NLocalString< 256 > NString256
Type alias name for TLocalString<nchar,256> .