summaryrefslogtreecommitdiff
path: root/sys/kern/kern_spawn.c
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-06-08 23:55:59 -0400
committerIan Moffett <ian@osmora.org>2025-06-08 23:55:59 -0400
commitadd9905af1b34d6592903c591177f37cc23e4f0d (patch)
tree363dd38029dce6e6b422bcf5f8d34e4705b9becb /sys/kern/kern_spawn.c
parentac37da5ef502ea3d248cda3d93796743eab65783 (diff)
kernel: spawn: Return process exit status on fail
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/kern/kern_spawn.c')
-rw-r--r--sys/kern/kern_spawn.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/kern/kern_spawn.c b/sys/kern/kern_spawn.c
index 4105668..4ec1bfb 100644
--- a/sys/kern/kern_spawn.c
+++ b/sys/kern/kern_spawn.c
@@ -153,6 +153,7 @@ spawn(struct proc *cur, void(*func)(void), void *p, int flags, struct proc **new
atomic_inc_int(&cur->nleaves);
newproc->parent = cur;
newproc->data = p;
+ newproc->exit_status = -1;
/* Initialize the mmap ledger */
mlgdr->nbytes = 0;
@@ -177,6 +178,10 @@ spawn(struct proc *cur, void(*func)(void), void *p, int flags, struct proc **new
panic("possibly memory corruption\n");
}
+ if (newproc->exit_status < 0) {
+ pid = newproc->exit_status;
+ }
+
proc_reap(newproc);
}