summaryrefslogtreecommitdiff
path: root/src/core/arm
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2022-10-19 16:27:43 -0400
committerGitHub <noreply@github.com>2022-10-19 16:27:43 -0400
commit560bca57a203c45acb1c589699b472223e8b68fd (patch)
tree98ef4a0d62a368614075463d13c4220b11af9760 /src/core/arm
parentb8a70c9999b9a09d7028a617040719bf5341cf6d (diff)
parent97879faea43c1fad6cbb0b63573c75644705e2e9 (diff)
Merge pull request #9071 from bunnei/mp-mm
Kernel Multiprocess (Part 1) - Persist memory & core timing
Diffstat (limited to 'src/core/arm')
-rw-r--r--src/core/arm/arm_interface.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/arm/arm_interface.cpp b/src/core/arm/arm_interface.cpp
index 953d96439..29ba562dc 100644
--- a/src/core/arm/arm_interface.cpp
+++ b/src/core/arm/arm_interface.cpp
@@ -134,6 +134,14 @@ void ARM_Interface::Run() {
}
system.ExitDynarmicProfile();
+ // If the thread is scheduled for termination, exit the thread.
+ if (current_thread->HasDpc()) {
+ if (current_thread->IsTerminationRequested()) {
+ current_thread->Exit();
+ UNREACHABLE();
+ }
+ }
+
// Notify the debugger and go to sleep if a breakpoint was hit,
// or if the thread is unable to continue for any reason.
if (Has(hr, breakpoint) || Has(hr, no_execute)) {