summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_exit.c5
-rw-r--r--sys/kern/kern_spawn.c5
2 files changed, 2 insertions, 8 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
index 0f90365..53dc166 100644
--- a/sys/kern/kern_exit.c
+++ b/sys/kern/kern_exit.c
@@ -159,10 +159,7 @@ exit1(struct proc *td, int flags)
if (td->data == NULL)
sched_enter();
- if (ISSET(parent->flags, PROC_SLEEP)) {
- sched_enqueue_td(parent);
- parent->flags &= ~PROC_SLEEP;
- }
+ parent->flags &= ~PROC_SLEEP;
sched_enter();
}
diff --git a/sys/kern/kern_spawn.c b/sys/kern/kern_spawn.c
index 4ec1bfb..42e558a 100644
--- a/sys/kern/kern_spawn.c
+++ b/sys/kern/kern_spawn.c
@@ -168,10 +168,7 @@ spawn(struct proc *cur, void(*func)(void), void *p, int flags, struct proc **new
if (ISSET(flags, SPAWN_WAIT)) {
newproc->flags |= PROC_WAITED;
cur->flags |= PROC_SLEEP;
-
- while (ISSET(cur->flags, PROC_SLEEP)) {
- sched_yield();
- }
+ sched_yield();
if (!ISSET(newproc->flags, PROC_ZOMB)) {
pr_error("spawn: fatal: %d not zombie\n", newproc->pid);