Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Synchronized.h File Reference
#include "Stroika/Foundation/StroikaPreComp.h"
#include <compare>
#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
 

Detailed Description

Note
Code-Status: Beta

TODO:

Definition in file Synchronized.h.

Enumeration Type Documentation

◆ _ExternallyLocked

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 602 of file Synchronized.h.