[development] removal of unused and low stakes code related to Cry-threading (#2896)
Removal highlights include: - File indexer (used CryThread<>) linked to long gone asset browser - Producer/consumer queues from CryMT - set/vector/CLocklessPointerQueue containers also from CryMT - Cry interlocked linked list and _InterlockedCompareExchange128 - CryThread type - SAtomicVar types - CryAutoSet type - Various unused lock types -- AutoLockModify -- AutoLockRead -- CryOptionalAutoLock -- CryReadModifyLock -- CryRWLock -- ReadLock -- ReadLockCond -- WriteAfterReadLock - Misc. unused functions -- CryInterLockedAdd (not to be confused with CryInterlockedAdd, using a lower case "locked") -- CryInterlockedExchange64 (which was only defined for unix platforms) -- SpinLock -- JobSpinLock -- AtomicAdd -- JobAtomicAdd Signed-off-by: AMZN-ScottR <24445312+AMZN-ScottR@users.noreply.github.com>
This commit is contained in:
@@ -30,17 +30,6 @@
|
||||
#define MOBILE
|
||||
#endif
|
||||
|
||||
#if (defined(__clang__) && NDK_REV_MAJOR >= 14) || (defined(_CPU_ARM) && defined(PLATFORM_64BIT))
|
||||
// The version of clang that NDK r14+ ships with is seemingly generating different (for better or worse) code for the atomic operations
|
||||
// used in the LocklessLinkedList. In either case, this is causing deadlocks in the job system and crashes from memory stomps in
|
||||
// the bucket allocator. By defining INTERLOCKED_COMPARE_EXCHANGE_128_NOT_SUPPORTED it will disable the Cry job system as well as
|
||||
// change the implementation of the LocklessLinkedList to use a mutex in it's operations instead, essentially use the same behaviour
|
||||
// as iOS. While not ideal to use this as a band-aid on the problem, it does fix it with a negligible performance impact.
|
||||
//
|
||||
// Additionally, arm64 processors do not provide a cmpxchg16b (or equivalent) instruction required for _InterlockedCompareExchange128
|
||||
#define INTERLOCKED_COMPARE_EXCHANGE_128_NOT_SUPPORTED
|
||||
#endif
|
||||
|
||||
// Force all allocations to be aligned to TARGET_DEFAULT_ALIGN.
|
||||
// This is because malloc on Android 32 bit returns memory that is not aligned
|
||||
// to what some structs/classes need.
|
||||
|
||||
Reference in New Issue
Block a user