8#if !defined(ALIB_C20_MODULES) || ((ALIB_C20_MODULES != 0) && (ALIB_C20_MODULES != 1))
9# error "Symbol ALIB_C20_MODULES has to be given to the compiler as either 0 or 1"
26#if !ALIB_SINGLE_THREADED && ALIB_DEBUG
41"Multi-Threadding {} in Lock \"{}\"" "\n"
43" In (Member-)Function: {}" "\n"
44" Is Owned: {} ({})" "\n"
46" Called By: {}::{}" "\n"
50" Latest Acquisition By: {}::{}" "\n"
53" Latest Release By: {}:{}" "\n"
59"Multi-Threadding {} in Shared-Lock \"{}\"" "\n"
61" In (Member-)Function: {}" "\n"
62" Is Owned: {} ({})" "\n"
63" Is Shared Owned: {} ({})" "\n"
65" Called By: {}::{}" "\n"
69" Latest Acquisition By: {}::{}" "\n"
72" Latest Release By: {}::{}" "\n"
76" Latest Shared Acquisition By: {}::{}" "\n"
79" Latest SharedRelease By: {}::{}" "\n"
86 const char* headline )
89 (type== 0 ?
"Assertion" :
"Warning"),
101 const char* headline )
104 (type== 0 ?
"Assertion" :
"Warning"),
119"Assertion failed in method TCondition::{}" "\n"
123" Called By: {}::{}" "\n"
127" Current Owner: {}" "\n"
128" #Of Waiters: {}" "\n"
129" Exclusive Waiter: {}" "\n"
131" Latest Acquisition By: {}::{}" "\n"
134" Latest Release By: {}::{}" "\n"
138" Latest Wait By: {}::{}" "\n"
141" Latest Notify By: {}::{}" "\n"
147 const char* headline )
static ALIB_DLL Thread * Get(std::thread::id nativeID)
void Raise(const lang::CallerInfo &ci, int type, std::string_view domain, TArgs &&... args)
lang::CallerInfo CallerInfo
Type alias in namespace alib.
const char * File
The name of the source file as given by compiler.
const std::type_info * TypeInfo
The calling type.
int Line
The line number within File.
std::thread::id ThreadID
The ID of the calling thread.
std::thread::id AssertExclusiveWaiter
ALIB_DLL void Assert(bool cond, const CallerInfo &assertCI, const CallerInfo &ci, const char *headline)
CallerInfo NotifyCI
The most recent call to ReleaseAndNotify or.
const character * Name
The name of this instance.
static ALIB_DLL const char * ASSERTION_FORMAT
CallerInfo RelCI
Source location of the most recent release.
Thread * Owner
Tracks the current owner.
std::atomic< int > CntWaiters
The number of currently waiting threads.
CallerInfo AcqCI
Source location of the most recent acquirement.
CallerInfo WaitCI
The most recent call to WaitForNotification.
static ALIB_DLL const char * ASSERTION_FORMAT
CallerInfo RelCI
Source location of the most recent release.
int16_t CntAcquirements
The number of nested acquirements.
virtual ALIB_DLL void DoAssert(int type, const CallerInfo &assertCI, const CallerInfo &ci, const char *headline)
ALIB_DLL Thread * GetOwner() const
CallerInfo AcqCI
Source location of the most recent acquirement.
CallerInfo SAcqCI
Source location of the most recent shared acquirement.
ALIB_DLL void DoAssert(int type, const CallerInfo &assertCI, const CallerInfo &ci, const char *headline) override
static ALIB_DLL const char * ASSERTION_FORMAT_SHARED
std::atomic< int > CntSharedAcquirements
The number of shared acquirements.
CallerInfo SRelCI
Source location of the most recent shared release.