aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-06-22 14:46:33 -0700
committerGitHub <noreply@github.com>2022-06-22 14:46:33 -0700
commit3f3f5aa93b4f075e051e90da7269ce375388a2e9 (patch)
treec179c5fa993f3e840d6e0051ae28ad04520e2723 /src/core/hle/kernel/kernel.cpp
parent49e8aef1ac657f902d6c95130f2038d776796e90 (diff)
parent808ad9eb9f60e58f240586dbbac1c09ba96c65a1 (diff)
Merge pull request #8483 from liamwhite/fire-emblem-three-semaphores
kernel: wait for threads to stop on pause
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 66c8f4455e..94953e2576 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -1078,6 +1078,13 @@ void KernelCore::Suspend(bool suspended) {
for (auto* process : GetProcessList()) {
process->SetActivity(activity);
+
+ if (should_suspend) {
+ // Wait for execution to stop
+ for (auto* thread : process->GetThreadList()) {
+ thread->WaitUntilSuspended();
+ }
+ }
}
}