Add missing check for thread termination on ArbitrateLock (#4722)

* Add missing check for thread termination on ArbitrateLock

* Use TerminationRequested in all places where it can be used
This commit is contained in:
gdkchan 2023-04-25 19:33:14 -03:00 committed by GitHub
parent db4242c5dc
commit 097562bc6c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 23 deletions

View file

@ -47,8 +47,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
KThread currentThread = KernelStatic.GetCurrentThread();
if (currentThread.ShallBeTerminated ||
currentThread.SchedFlags == ThreadSchedState.TerminationPending)
if (currentThread.TerminationRequested)
{
result = KernelResult.ThreadTerminating;
}
@ -61,7 +60,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
else
{
LinkedListNode<KThread>[] syncNodesArray = ArrayPool<LinkedListNode<KThread>>.Shared.Rent(syncObjs.Length);
Span<LinkedListNode<KThread>> syncNodes = syncNodesArray.AsSpan(0, syncObjs.Length);
for (int index = 0; index < syncObjs.Length; index++)