From bdcd0c2fdae278eaafdaaf32003fce5598f476eb Mon Sep 17 00:00:00 2001 From: "Justin C. Miller" Date: Wed, 6 Jan 2021 23:25:48 -0800 Subject: [PATCH] [kernel] Clean up process::exit Make process::exit slightly more resilient to being called again. --- src/kernel/objects/process.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) 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();