|
|
|
@ -119,6 +119,7 @@ struct KernelCore::Impl {
|
|
|
|
|
|
|
|
|
|
void Initialize(KernelCore& kernel) {
|
|
|
|
|
Shutdown();
|
|
|
|
|
RegisterHostThread();
|
|
|
|
|
|
|
|
|
|
InitializePhysicalCores();
|
|
|
|
|
InitializeSystemResourceLimit(kernel);
|
|
|
|
@ -135,6 +136,19 @@ struct KernelCore::Impl {
|
|
|
|
|
next_user_process_id = Process::ProcessIDMin;
|
|
|
|
|
next_thread_id = 1;
|
|
|
|
|
|
|
|
|
|
for (std::size_t i = 0; i < Core::Hardware::NUM_CPU_CORES; i++) {
|
|
|
|
|
if (suspend_threads[i]) {
|
|
|
|
|
suspend_threads[i].reset();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (std::size_t i = 0; i < cores.size(); i++) {
|
|
|
|
|
cores[i].Shutdown();
|
|
|
|
|
}
|
|
|
|
|
cores.clear();
|
|
|
|
|
|
|
|
|
|
registered_core_threads.reset();
|
|
|
|
|
|
|
|
|
|
process_list.clear();
|
|
|
|
|
current_process = nullptr;
|
|
|
|
|
|
|
|
|
@ -154,6 +168,7 @@ struct KernelCore::Impl {
|
|
|
|
|
cores.clear();
|
|
|
|
|
|
|
|
|
|
exclusive_monitor.reset();
|
|
|
|
|
host_thread_ids.clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void InitializePhysicalCores() {
|
|
|
|
|