summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar David Marcec2018-10-14 18:14:51 +1100
committerGravatar David Marcec2018-10-14 18:14:51 +1100
commit92fae7e1abcf4c44a3c4abdabdd9b8586560a30c (patch)
tree6eff3c5a144552e44da2750a0c04f0b002cd6889
parentMerge pull request #1409 from DarkLordZach/key-derivation (diff)
downloadyuzu-92fae7e1abcf4c44a3c4abdabdd9b8586560a30c.tar.gz
yuzu-92fae7e1abcf4c44a3c4abdabdd9b8586560a30c.tar.xz
yuzu-92fae7e1abcf4c44a3c4abdabdd9b8586560a30c.zip
Stop all threads on svcBreak
This should help diagnose crashes easier and prevent many users thinking that a game is still running when in fact it's just an audio thread still running(this is typically not killed when svcBreak is hit since the game expects us to do this)
-rw-r--r--src/core/hle/kernel/svc.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index e406df829..198865fd0 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -389,6 +389,12 @@ static void Break(u32 reason, u64 info1, u64 info2) {
389 "Emulated program broke execution! reason=0x{:016X}, info1=0x{:016X}, info2=0x{:016X}", 389 "Emulated program broke execution! reason=0x{:016X}, info1=0x{:016X}, info2=0x{:016X}",
390 reason, info1, info2); 390 reason, info1, info2);
391 ASSERT(false); 391 ASSERT(false);
392
393 Core::CurrentProcess()->PrepareForTermination();
394
395 // Kill the current thread
396 GetCurrentThread()->Stop();
397 Core::System::GetInstance().PrepareReschedule();
392 } 398 }
393} 399}
394 400