diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs index 2e50b6c187..c74f6fca1b 100644 --- a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs +++ b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs @@ -998,6 +998,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process lock (_threadingLock) { System.CriticalSection.Enter(); + foreach (KThread thread in _threads) { if ((thread.SchedFlags & ThreadSchedState.LowMask) != ThreadSchedState.TerminationPending) @@ -1005,6 +1006,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process thread.PrepareForTermination(); } } + System.CriticalSection.Leave(); } diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs index 68bd78036b..0bf5e5fa3d 100644 --- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs +++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs @@ -31,10 +31,10 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall svcFunc(this, context); - PostSvcHandler(context); + PostSvcHandler(); } - private void PostSvcHandler(ExecutionContext context) + private void PostSvcHandler() { KThread currentThread = _system.Scheduler.GetCurrentThread();