LeviLamina
Loading...
Searching...
No Matches
SequenceLock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5namespace Bedrock::Threading {
6
8public:
9 // SequenceLock inner types declare
10 // clang-format off
11 class LockAlgorithm;
12 class SequenceId;
13 // clang-format on
14
15 // SequenceLock inner types define
16 class LockAlgorithm {};
17
18 class SequenceId {
19 public:
20 // member variables
21 // NOLINTBEGIN
22 ::ll::TypedStorage<4, 4, uint> mValue;
23 // NOLINTEND
24 };
25
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<4, 4, ::std::thread::id> mOwningThreadId;
30 ::ll::TypedStorage<4, 4, ::std::atomic<uint>> mAtom;
31 union {
32 struct {
33 uint mRecursionCounter : 31;
34 uint mTestEnabledFlag : 1;
35 };
36 ::ll::TypedStorage<4, 4, uint> mBitfieldData;
37 };
38 // NOLINTEND
39};
40
41} // namespace Bedrock::Threading
Definition SequenceLock.h:7