diff --git a/src/kernel/objects/process.cpp b/src/kernel/objects/process.cpp index 7cdf6a3..bf1f29f 100644 --- a/src/kernel/objects/process.cpp +++ b/src/kernel/objects/process.cpp @@ -52,16 +52,13 @@ void process::exit(unsigned code) { // TODO: make this thread-safe - if (m_state != state::running) - return; - else - m_state = state::exited; + m_state = state::exited; + m_return_code = code; + close(); for (auto *thread : m_threads) { thread->exit(code); } - m_return_code = code; - close(); if (this == bsp_cpu_data.p) scheduler::get().schedule();