diff options
author | gdkchan <gab.dark.100@gmail.com> | 2022-06-23 21:53:16 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-24 02:53:16 +0200 |
commit | 232b1012b0c981830ac46bd5024dcc0e35075301 (patch) | |
tree | 6f8fb1136e3eaf5a472e67c969ef69d27975e259 /Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs | |
parent | e747f5cd836b73661414134b182fc50121e56865 (diff) |
Fix ThreadingLock deadlock on invalid access and TerminateProcess (#3407)1.1.155
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs index d01c3e3b..4c95821c 100644 --- a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs +++ b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs @@ -966,6 +966,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Process SignalExitToDebugExited(); SignalExit(); } + + KernelStatic.GetCurrentThread().Exit(); } private void UnpauseAndTerminateAllThreadsExcept(KThread currentThread) @@ -981,7 +983,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process foreach (KThread thread in _threads) { - if ((thread.SchedFlags & ThreadSchedState.LowMask) != ThreadSchedState.TerminationPending) + if (thread != currentThread && (thread.SchedFlags & ThreadSchedState.LowMask) != ThreadSchedState.TerminationPending) { thread.PrepareForTermination(); } |