From 41eb45402eea27e83b2c5f65feb1a9af71c57067 Mon Sep 17 00:00:00 2001 From: "Justin C. Miller" Date: Wed, 3 Feb 2021 16:55:14 -0800 Subject: [PATCH] [kernel] Start process handles at 1 The 0 index was still sometimes not handled properly in the hash table. Also 0 is sometimes indicative of an error. Let's just start handles from 1 to avoid those issues. --- src/kernel/objects/process.cpp | 4 ++-- src/kernel/objects/process.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/kernel/objects/process.cpp b/src/kernel/objects/process.cpp index 5506306..d956363 100644 --- a/src/kernel/objects/process.cpp +++ b/src/kernel/objects/process.cpp @@ -17,13 +17,13 @@ kutil::vector process::s_processes; process::process() : kobject {kobject::type::process}, - m_next_handle {0}, + m_next_handle {1}, m_state {state::running} { s_processes.append(this); j6_handle_t self = add_handle(this); - kassert(self == self_handle(), "Process self-handle is not 0"); + kassert(self == self_handle(), "Process self-handle is not 1"); } // The "kernel process"-only constructor diff --git a/src/kernel/objects/process.h b/src/kernel/objects/process.h index c02e2df..6ccc63e 100644 --- a/src/kernel/objects/process.h +++ b/src/kernel/objects/process.h @@ -69,7 +69,7 @@ public: bool thread_exited(thread *th); /// Get the handle for this process to refer to itself - inline j6_handle_t self_handle() const { return 0; } + inline j6_handle_t self_handle() const { return 1; } /// Get the process object that owns kernel threads and the /// kernel address space