61 OwnerThreadId.store(0, std::memory_order_relaxed);
65 std::atomic<uint32> OwnerThreadId;
98 SynchObject =
nullptr;
121 return TryTakeOwnershipWithinLock();
126 return TryTakeOwnershipWithinLock();
130 return TryTakeOwnershipWithinLock();
134 return TryTakeOwnershipWithinLock();
140 ReleaseOwnershipCheckedWithinLock();
145 ReleaseOwnershipCheckedWithinLock();
149 ReleaseOwnershipCheckedWithinLock();
153 ReleaseOwnershipCheckedWithinLock();
171 bool TryTakeOwnershipWithinLock()
181 void ReleaseOwnershipCheckedWithinLock()
185 OwnerThreadId.store(0, std::memory_order_relaxed);
190 std::atomic<uint32> OwnerThreadId{ 0 };
191 bool bHasOwner =
false;
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
Definition CriticalSectionQueryable.h:13
void Unlock()
Definition CriticalSectionQueryable.h:41
FCriticalSectionQueryable(FCriticalSectionQueryable &&)=delete
FCriticalSectionQueryable(const FCriticalSectionQueryable &)=delete
void Lock()
Definition CriticalSectionQueryable.h:25
FCriticalSectionQueryable()
Definition CriticalSectionQueryable.h:20
FCriticalSectionQueryable & operator=(FCriticalSectionQueryable &&)=delete
bool IsLockedOnCurrentThread() const
Definition CriticalSectionQueryable.h:48
bool TryLock()
Definition CriticalSectionQueryable.h:31
FCriticalSectionQueryable & operator=(const FCriticalSectionQueryable &)=delete
Definition CriticalSectionQueryable.h:72
FScopeLockQueryable & operator=(FScopeLockQueryable &&InScopeLock)=delete
FScopeLockQueryable(const FScopeLockQueryable &InScopeLock)=delete
FScopeLockQueryable()=delete
void Unlock()
Definition CriticalSectionQueryable.h:93
~FScopeLockQueryable()
Definition CriticalSectionQueryable.h:88
FScopeLockQueryable(FCriticalSectionQueryable *InSynchObject)
Definition CriticalSectionQueryable.h:80
FScopeLockQueryable(FScopeLockQueryable &&InScopeLock)=delete
FScopeLockQueryable & operator=(FScopeLockQueryable &InScopeLock)=delete
Definition ScopeLock.h:141
Definition CriticalSectionQueryable.h:116
void ReleaseOwnershipChecked(FScopeLock &AlreadyEnteredAegisScopeLock)
Definition CriticalSectionQueryable.h:151
bool IsOwned(FScopeLock &AlreadyEnteredAegisScopeLock) const
Definition CriticalSectionQueryable.h:160
bool TryTakeOwnership(FCriticalSection &NotYetEnteredAegisLock)
Definition CriticalSectionQueryable.h:123
bool TryTakeOwnership(FScopeLock &AlreadyEnteredAegisScopeLock)
Definition CriticalSectionQueryable.h:132
bool TryTakeOwnership(FCriticalSectionQueryable &NotYetEnteredAegisLock)
Definition CriticalSectionQueryable.h:118
bool TryTakeOwnership(FScopeLockQueryable &AlreadyEnteredAegisScopeLock)
Definition CriticalSectionQueryable.h:128
void ReleaseOwnershipChecked(FCriticalSection &NotYetEnteredAegisLock)
Definition CriticalSectionQueryable.h:142
bool IsOwned(FScopeLockQueryable &AlreadyEnteredAegisScopeLock) const
Definition CriticalSectionQueryable.h:156
bool IsOwnedByCurrentThread() const
Definition CriticalSectionQueryable.h:165
void ReleaseOwnershipChecked(FScopeLockQueryable &AlreadyEnteredAegisScopeLock)
Definition CriticalSectionQueryable.h:147
void ReleaseOwnershipChecked(FCriticalSectionQueryable &NotYetEnteredAegisLock)
Definition CriticalSectionQueryable.h:137
static uint32 GetCurrentThreadId(void)
Definition AndroidPlatformTLS.h:20