|
|
|
@ -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;
|
|
|
|
|
|
|
|
|
|