From 097562bc6c227c42f803ce1078fcb4adf06cd20c Mon Sep 17 00:00:00 2001
From: gdkchan <gab.dark.100@gmail.com>
Date: Tue, 25 Apr 2023 19:33:14 -0300
Subject: 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
---
 Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

(limited to 'Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs')

diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs
index d42f9003..9c196810 100644
--- a/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs
@@ -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++)
-- 
cgit v1.2.3-70-g09d2