diff --git a/kernel/include/kernel/Scheduler.h b/kernel/include/kernel/Scheduler.h index 278245a0..56a24263 100644 --- a/kernel/include/kernel/Scheduler.h +++ b/kernel/include/kernel/Scheduler.h @@ -17,8 +17,6 @@ namespace Kernel void reschedule(); void reschedule_if_idling(); - BAN::ErrorOr add_thread(Thread*); - void set_current_thread_sleeping(uint64_t); [[noreturn]] void set_current_thread_done(); @@ -38,6 +36,8 @@ namespace Kernel void advance_current_thread(); [[noreturn]] void execute_current_thread(); + BAN::ErrorOr add_thread(Thread*); + private: struct ActiveThread { @@ -69,6 +69,8 @@ namespace Kernel BAN::LinkedList::iterator m_current_thread; uint64_t m_last_reschedule = 0; + + friend class Process; }; } \ No newline at end of file diff --git a/kernel/kernel/kernel.cpp b/kernel/kernel/kernel.cpp index ca47face..02e52acb 100644 --- a/kernel/kernel/kernel.cpp +++ b/kernel/kernel/kernel.cpp @@ -165,9 +165,9 @@ extern "C" void kernel_main() MUST(Scheduler::initialize()); Scheduler& scheduler = Scheduler::get(); - MUST(scheduler.add_thread(MUST(Thread::create(init2, tty1, nullptr)))); + MUST(Process::create_kernel(init2, tty1)); scheduler.start(); - + ASSERT_NOT_REACHED(); }