#include "Stroika/Foundation/StroikaPreComp.h"#include <compare>#include <concepts>#include <functional>#include <mutex>#include <optional>#include <shared_mutex>#include <type_traits>#include "Stroika/Foundation/Common/Common.h"#include "Stroika/Foundation/Common/Empty.h"#include "Stroika/Foundation/Common/TypeHints.h"#include "Stroika/Foundation/Execution/Common.h"#include "Stroika/Foundation/Execution/Finally.h"#include "Stroika/Foundation/Execution/SpinLock.h"#include "Synchronized.inl"Go to the source code of this file.
Classes | |
| struct | Stroika::Foundation::Execution::Synchronized_Traits< MUTEX > |
| class | Stroika::Foundation::Execution::Synchronized< T, TRAITS > |
| Wrap any object with Synchronized<> and it can be used similarly to the base type, but safely in a thread safe manner, from multiple threads. This is similar to std::atomic. More... | |
| class | Stroika::Foundation::Execution::Synchronized< T, TRAITS >::ReadableReference |
Namespaces | |
| namespace | Stroika::Foundation |
| namespace | Stroika::Foundation::Execution |
Typedefs | |
| template<typename T > | |
| using | Stroika::Foundation::Execution::QuickSynchronized = conditional_t< kSpinLock_IsFasterThan_mutex, Synchronized< T, Synchronized_Traits< SpinLock > >, Synchronized< T, Synchronized_Traits< mutex > > > |
| template<typename T > | |
| using | Stroika::Foundation::Execution::TimedSynchronized = Synchronized< T, Synchronized_Traits< recursive_timed_mutex > > |
| template<typename T > | |
| using | Stroika::Foundation::Execution::RWSynchronized = Synchronized< T, Synchronized_Traits< shared_timed_mutex > > |
Enumerations | |
| enum class | Stroika::Foundation::Execution::InternallySynchronized |
| enum class | _ExternallyLocked |
|
strongprotected |
If specified, either subclass, or external lock used for lifetime of this object. So this class just provides access, but doesn't actually do a lock.
Definition at line 603 of file Synchronized.h.