diff options
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 34da7c23b..caa91a509 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -84,7 +84,7 @@ struct KernelCore::Impl {      void InitializeCores() {          for (u32 core_id = 0; core_id < Core::Hardware::NUM_CPU_CORES; core_id++) { -            cores[core_id].Initialize(current_process->Is64BitProcess()); +            cores[core_id].Initialize((*current_process).Is64BitProcess());              system.Memory().SetCurrentPageTable(*current_process, core_id);          }      } @@ -167,11 +167,11 @@ struct KernelCore::Impl {          // Shutdown all processes.          if (current_process) { -            current_process->Finalize(); +            (*current_process).Finalize();              // current_process->Close();              // TODO: The current process should be destroyed based on accurate ref counting after              // calling Close(). Adding a manual Destroy() call instead to avoid a memory leak. -            current_process->Destroy(); +            (*current_process).Destroy();              current_process = nullptr;          } @@ -697,7 +697,7 @@ struct KernelCore::Impl {      // Lists all processes that exist in the current session.      std::vector<KProcess*> process_list; -    KProcess* current_process{}; +    std::atomic<KProcess*> current_process{};      std::unique_ptr<Kernel::GlobalSchedulerContext> global_scheduler_context;      Kernel::TimeManager time_manager;  | 
