diff options
author | Ian Moffett <ian@osmora.org> | 2025-06-08 23:55:59 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-06-08 23:55:59 -0400 |
commit | add9905af1b34d6592903c591177f37cc23e4f0d (patch) | |
tree | 363dd38029dce6e6b422bcf5f8d34e4705b9becb /sys/kern/kern_spawn.c | |
parent | ac37da5ef502ea3d248cda3d93796743eab65783 (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.c | 5 |
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); } |