You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Move some UObject locks to transactionally safe locks
#rb ben.clayton [CL 35710841 by brandon schaefer in ue5-main branch]
This commit is contained in:
@@ -129,7 +129,7 @@ void FUObjectArray::OpenDisregardForGC()
|
||||
void FUObjectArray::CloseDisregardForGC()
|
||||
{
|
||||
#if THREADSAFE_UOBJECTS
|
||||
FScopeLock ObjObjectsLock(&ObjObjectsCritical);
|
||||
FTransactionallySafeScopeLock ObjObjectsLock(&ObjObjectsCritical);
|
||||
#else
|
||||
// Disregard from GC pool is only available from the game thread, at least for now
|
||||
check(IsInGameThread());
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "Misc/TransactionallySafeCriticalSection.h"
|
||||
#include "UObject/GarbageCollectionGlobals.h"
|
||||
#include "UObject/UObjectBase.h"
|
||||
#include "Misc/TransactionallySafeScopeLock.h"
|
||||
|
||||
#if WITH_VERSE_VM || defined(__INTELLISENSE__)
|
||||
namespace Verse
|
||||
@@ -1304,7 +1305,7 @@ private:
|
||||
/** Array of all live objects. */
|
||||
TUObjectArray ObjObjects;
|
||||
/** Synchronization object for all live objects. */
|
||||
mutable FCriticalSection ObjObjectsCritical;
|
||||
mutable FTransactionallySafeCriticalSection ObjObjectsCritical;
|
||||
/** Available object indices. */
|
||||
TArray<int32> ObjAvailableList;
|
||||
|
||||
@@ -1341,7 +1342,7 @@ public:
|
||||
|
||||
SIZE_T GetAllocatedSize() const
|
||||
{
|
||||
FScopeLock ObjListLock(&ObjObjectsCritical);
|
||||
FTransactionallySafeScopeLock ObjListLock(&ObjObjectsCritical);
|
||||
#if THREADSAFE_UOBJECTS
|
||||
FTransactionallySafeScopeLock ListenersLock(&UObjectDeleteListenersCritical);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user