55 if (AutoRTFM::IsTransactional() || AutoRTFM::IsCommittingOrAborting())
62 State->Mutex.LockShared();
69 if (AutoRTFM::IsTransactional() || AutoRTFM::IsCommittingOrAborting())
77 State->Mutex.UnlockShared();
83 if (AutoRTFM::IsTransactional() || AutoRTFM::IsCommittingOrAborting())
89 if (0 ==
State->TransactionalLockCount)
94 State->TransactionalLockCount += 1;
101 State.Object->Unlock();
113 if (AutoRTFM::IsTransactional() || AutoRTFM::IsCommittingOrAborting())
119 State.Object->Unlock();
125 State->Mutex.Unlock();
131 if (AutoRTFM::IsTransactional() || AutoRTFM::IsCommittingOrAborting())
140 if (0 ==
State->TransactionalLockCount)
142 Ret =
State->Mutex.TryLock();
147 State->TransactionalLockCount += 1;
159 State.Object->Unlock();
166 return State->Mutex.TryLock();
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define UE_NONCOPYABLE(TypeName)
Definition CoreMiscDefines.h:457
TSharedRef< InObjectType, InMode > MakeShared(InArgTypes &&... Args)
Definition SharedPointer.h:2009
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
Definition OpenWrapper.h:28
Definition SharedPointer.h:692
UE_API void Unlock()
Definition RecursiveMutex.cpp:115
Definition SharedMutex.h:22
UE::FRecursiveMutex Mutex
Definition MeshPaintVirtualTexture.cpp:164
State
Definition PacketHandler.h:88
Definition AdvancedWidgetsModule.cpp:13
::UE::FSharedMutex FTransactionallySafeSharedMutex
Definition TransactionallySafeSharedMutex.h:202