From f19e97966debb8af830ca09a62522c95c0415d9b Mon Sep 17 00:00:00 2001 From: Daniel Hammer Date: Mon, 4 May 2026 08:01:55 +0200 Subject: [PATCH] fix: properly record PIDs --- kernel/src/Sched/Scheduler.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/kernel/src/Sched/Scheduler.cpp b/kernel/src/Sched/Scheduler.cpp index 8069011..2bc975c 100644 --- a/kernel/src/Sched/Scheduler.cpp +++ b/kernel/src/Sched/Scheduler.cpp @@ -367,6 +367,9 @@ namespace Sched { proc.sleepUntilTick = 0; proc.waitingOnObject = nullptr; + auto* currentCpu = Smp::GetCurrentCpuData(); + int parentSlot = currentCpu ? currentCpu->currentSlot : -1; + // Copy arguments string into process proc.args[0] = '\0'; if (args != nullptr) { @@ -379,8 +382,6 @@ namespace Sched { // Inherit user string from parent, or default to "system" if no parent { - auto* cpu = Smp::GetCurrentCpuData(); - int parentSlot = cpu->currentSlot; if (parentSlot >= 0) { int i = 0; for (; i < 31 && processTable[parentSlot].user[i]; i++) @@ -395,8 +396,6 @@ namespace Sched { } { - auto* cpu = Smp::GetCurrentCpuData(); - int parentSlot = cpu->currentSlot; if (parentSlot >= 0 && processTable[parentSlot].cwd[0]) { int i = 0; for (; i < 255 && processTable[parentSlot].cwd[i]; i++) { @@ -412,7 +411,7 @@ namespace Sched { } proc.redirected = false; - proc.parentPid = -1; + proc.parentPid = (parentSlot >= 0) ? processTable[parentSlot].pid : -1; proc.outBuf = nullptr; proc.outHead = 0; proc.outTail = 0;