From 8665195350f923b4e174292896faf308b5edbe47 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 21 Apr 2026 00:23:35 +0300 Subject: [PATCH] Kernel: Allow main thread to call pthread_exit Apparently this is allowed. Also when last thread calls pthread_join the process should also exit --- kernel/kernel/Process.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kernel/kernel/Process.cpp b/kernel/kernel/Process.cpp index 5c98b8d7..4689cf61 100644 --- a/kernel/kernel/Process.cpp +++ b/kernel/kernel/Process.cpp @@ -3357,9 +3357,8 @@ namespace Kernel { LockGuard _(m_process_lock); - // main thread cannot call pthread_exit - if (&Thread::current() == m_threads.front()) - return BAN::Error::from_errno(EINVAL); + if (m_threads.size() == 1) + return sys_exit(0); TRY(m_exited_pthreads.emplace_back(Thread::current().tid(), value));