#include "Stroika/Foundation/StroikaPreComp.h"
#include <algorithm>
#include <array>
#include <atomic>
#include <forward_list>
#include <memory>
#include <mutex>
#include <optional>
#include <shared_mutex>
#include <thread>
#include "Stroika/Foundation/Common/Common.h"
#include "Stroika/Foundation/Debug/Assertions.h"
#include "Stroika/Foundation/Debug/Sanitizer.h"
#include "AssertExternallySynchronizedMutex.inl"
Go to the source code of this file.
Classes | |
class | Stroika::Foundation::Debug::AssertExternallySynchronizedMutex |
NOT a real mutex - just a debugging infrastructure support tool so in debug builds can be assured threadsafe, which is syntactically used like a mutex, for SIMILAR reasons in similar places. More... | |
Namespaces | |
namespace | Stroika::Foundation |
Macros | |
#define | qStroika_Foundation_Debug_AssertExternallySynchronizedMutex_Enabled 0 |
qStroika_Foundation_Debug_AssertExternallySynchronizedMutex_Enabled controls if this threaded access protection | |
TODO:
Since Stroika 2.1b10 we do have a lock/free forward_list class I could try. But I'm not yet confident in its stability, so maybe sometime down the road...
Definition in file AssertExternallySynchronizedMutex.h.
#define qStroika_Foundation_Debug_AssertExternallySynchronizedMutex_Enabled 0 |
qStroika_Foundation_Debug_AssertExternallySynchronizedMutex_Enabled controls if this threaded access protection
The compilation compile-time macro qStroika_Foundation_Debug_AssertExternallySynchronizedMutex_Enabled can be used to control if AssertExternallySynchronizedMutex checking is enabled. If its not defined (typical), we look at qStroika_Foundation_Debug_AssertionsChecked. If that is false, qStroika_Foundation_Debug_AssertExternallySynchronizedMutex_Enabled is disabled. If qStroika_Foundation_Debug_AssertionsChecked is true, BUT, we have TSAN enabled, we STILL (change in Stroika v3.0d1) - DISABLE kAssertExternallySynchronizedMutexEnabled since its slow, and redundant. Only if qStroika_Foundation_Debug_AssertionsChecked is true, there is no TSAN, and qStroika_Foundation_Debug_AssertExternallySynchronizedMutex_Enabled is made do we turn on qStroika_Foundation_Debug_AssertExternallySynchronizedMutex_Enabled.
Definition at line 67 of file AssertExternallySynchronizedMutex.h.