summaryrefslogtreecommitdiff
path: root/sys/kern/kern_spawn.c
diff options
context:
space:
mode:
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);
}