LeviLamina
Loading...
Searching...
No Matches
PrioritizeSharedOwnership.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5namespace Bedrock::Threading {
6
8public:
9 // member variables
10 // NOLINTBEGIN
11 ::std::shared_mutex mMutex;
12 ::std::condition_variable_any mZeroReaders;
13 ::std::atomic<uint64> mReaderCount;
14 // NOLINTEND
15
16public:
17 static const size_t mWaitForZeroBit = 1ull << 63;
18
19 LLAPI void lock_shared();
20 LLNDAPI bool try_lock_shared();
21 LLAPI void unlock_shared();
22
23 LLAPI void lock();
24 LLNDAPI bool try_lock();
25 LLAPI void unlock();
26};
27
28} // namespace Bedrock::Threading
Definition PrioritizeSharedOwnership.h:7