diff options
Diffstat (limited to 'sys')
-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); } |