From af8ee74012876b5e59f2cb6d414c570b204aa319 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Mon, 9 Jun 2025 16:09:42 -0400 Subject: kernel: spawn: Wait on both PROC_SLEEP + PROC_ZOMB Signed-off-by: Ian Moffett --- sys/kern/kern_spawn.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'sys') diff --git a/sys/kern/kern_spawn.c b/sys/kern/kern_spawn.c index c554cca..60d8e22 100644 --- a/sys/kern/kern_spawn.c +++ b/sys/kern/kern_spawn.c @@ -169,11 +169,12 @@ spawn(struct proc *cur, void(*func)(void), void *p, int flags, struct proc **new if (ISSET(flags, SPAWN_WAIT)) { cur->flags |= PROC_SLEEP; - sched_yield(); - if (!ISSET(newproc->flags, PROC_ZOMB)) { - pr_error("spawn: fatal: %d not zombie\n", newproc->pid); - panic("possibly memory corruption\n"); + while (ISSET(cur->flags, PROC_SLEEP)) { + sched_yield(); + } + while (!ISSET(newproc->flags, PROC_ZOMB)) { + sched_yield(); } if (newproc->exit_status < 0) { -- cgit v1.2.3