fix: properly record PIDs

This commit is contained in:
2026-05-04 08:01:55 +02:00
parent 8e354a0083
commit f19e97966d
+4 -5
View File
@@ -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;