43 if (AutoRTFM::IsTransactional() || AutoRTFM::IsCommittingOrAborting())
49 if (0 ==
State->TransactionalLockCount)
54 State->TransactionalLockCount += 1;
63 State.Object->TransactionalLockCount -= 1;
65 if (0 ==
State.Object->TransactionalLockCount)
67 State.Object->Mutex.Unlock();
80 if (AutoRTFM::IsTransactional() || AutoRTFM::IsCommittingOrAborting())
88 State.Object->TransactionalLockCount -= 1;
90 if (0 ==
State.Object->TransactionalLockCount)
92 State.Object->Mutex.Unlock();
99 State->Mutex.Unlock();
105 if (AutoRTFM::IsTransactional() || AutoRTFM::IsCommittingOrAborting())
113 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
Definition RecursiveMutex.h:19
UE::FRecursiveMutex Mutex
Definition MeshPaintVirtualTexture.cpp:164
State
Definition PacketHandler.h:88
Definition AdvancedWidgetsModule.cpp:13
::UE::FRecursiveMutex FTransactionallySafeRecursiveMutex
Definition TransactionallySafeRecursiveMutex.h:139