diff options
| author | bunnei <bunneidev@gmail.com> | 2022-04-11 21:13:01 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-11 21:13:01 -0700 |
| commit | 203b812a83cf3e65eb852188cee482db2b6f2c22 (patch) | |
| tree | 5ce6c5bc77fe663428b9b66d1990c3bd64332581 /src/core/hle/kernel/kernel.cpp | |
| parent | a79f92711e9d00a38895638d6b9d2a7fad6abc4d (diff) | |
| parent | b64f4230b3b2298fb17905b71623201b52953af2 (diff) | |
Merge pull request #8157 from lat9nq/kernel-races
kernel: Fix some data races
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
| -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 134a0b8e97..481a0d7cb9 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -85,7 +85,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); } } @@ -168,11 +168,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; } @@ -704,7 +704,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; |
