28 return !!(State.load(std::memory_order_relaxed) & LockCountMask);
36 void LockSlow(
uint32 CurrentState,
uint32 CurrentThreadId);
37 void WakeWaitingThread();
39 static constexpr uint32 MayHaveWaitingLockFlag = 1 << 0;
40 static constexpr uint32 LockCountShift = 1;
41 static constexpr uint32 LockCountMask = 0xffff'fffe;
43 std::atomic<uint32> State = 0;
44 std::atomic<uint32> ThreadId = 0;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition SColorGradingComponentViewer.h:12
Definition RecursiveMutex.h:19
bool IsLocked() const
Definition RecursiveMutex.h:26
UE_API void Lock()
Definition RecursiveMutex.cpp:40
FRecursiveMutex(const FRecursiveMutex &)=delete
UE_API bool TryLock()
Definition RecursiveMutex.cpp:13
UE_API void Unlock()
Definition RecursiveMutex.cpp:115
constexpr FRecursiveMutex()=default
FRecursiveMutex & operator=(const FRecursiveMutex &)=delete
Definition AdvancedWidgetsModule.cpp:13