Ver Fonte

core: cpu_manager: Use invalid core_id on init and simplify shutdown.

bunnei há 5 anos atrás
pai
commit
08c63d5c75
1 ficheiros alterados com 3 adições e 7 exclusões
  1. 3 7
      src/core/cpu_manager.cpp

+ 3 - 7
src/core/cpu_manager.cpp

@@ -32,7 +32,7 @@ void CpuManager::Initialize() {
             core_data[core].host_thread = std::jthread(ThreadStart, std::ref(*this), core);
         }
     } else {
-        core_data[0].host_thread = std::jthread(ThreadStart, std::ref(*this), 0);
+        core_data[0].host_thread = std::jthread(ThreadStart, std::ref(*this), -1);
     }
 }
 
@@ -347,13 +347,9 @@ void CpuManager::RunThread(std::stop_token stop_token, std::size_t core) {
             sc_sync_first_use = false;
         }
 
-        // Abort if emulation was killed before the session really starts
-        if (!system.IsPoweredOn()) {
-            return;
-        }
-
+        // Emulation was stopped
         if (stop_token.stop_requested()) {
-            break;
+            return;
         }
 
         auto current_thread = system.Kernel().CurrentScheduler()->GetCurrentThread();