summaryrefslogtreecommitdiff
path: root/src/core/cpu_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/cpu_manager.cpp')
-rw-r--r--src/core/cpu_manager.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/core/cpu_manager.cpp b/src/core/cpu_manager.cpp
index 45cc176dc..d9bd5b665 100644
--- a/src/core/cpu_manager.cpp
+++ b/src/core/cpu_manager.cpp
@@ -32,7 +32,7 @@ void CpuManager::Initialize() {
32 core_data[core].host_thread = std::jthread(ThreadStart, std::ref(*this), core); 32 core_data[core].host_thread = std::jthread(ThreadStart, std::ref(*this), core);
33 } 33 }
34 } else { 34 } else {
35 core_data[0].host_thread = std::jthread(ThreadStart, std::ref(*this), 0); 35 core_data[0].host_thread = std::jthread(ThreadStart, std::ref(*this), -1);
36 } 36 }
37} 37}
38 38
@@ -347,13 +347,9 @@ void CpuManager::RunThread(std::stop_token stop_token, std::size_t core) {
347 sc_sync_first_use = false; 347 sc_sync_first_use = false;
348 } 348 }
349 349
350 // Abort if emulation was killed before the session really starts 350 // Emulation was stopped
351 if (!system.IsPoweredOn()) {
352 return;
353 }
354
355 if (stop_token.stop_requested()) { 351 if (stop_token.stop_requested()) {
356 break; 352 return;
357 } 353 }
358 354
359 auto current_thread = system.Kernel().CurrentScheduler()->GetCurrentThread(); 355 auto current_thread = system.Kernel().CurrentScheduler()->GetCurrentThread();