From 47e69250d08acc7d91d791148a37f4279f5939c9 Mon Sep 17 00:00:00 2001
From: Frans Kaashoek <kaashoek@mit.edu>
Date: Wed, 3 Jul 2019 15:38:30 -0400
Subject: Simplify wakeup1

---
 kernel/proc.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/kernel/proc.c b/kernel/proc.c
index 9202b61..1201c8b 100644
--- a/kernel/proc.c
+++ b/kernel/proc.c
@@ -529,19 +529,13 @@ sleep(void *chan, struct spinlock *lk)
 }
 
 //PAGEBREAK!
-// Wake up all processes sleeping on chan,
-// where chan is a proc, which is locked.
+// Wake up locked parent, used by exit()
 static void
-wakeup1(struct proc *chan)
+wakeup1(struct proc *p)
 {
-  struct proc *p;
-
-  for(p = ptable.proc; p < &ptable.proc[NPROC]; p++)
-    if(p == chan && p->state == SLEEPING && p->chan == chan) {
-      if(p->state != SLEEPING || p->chan != chan)
-        panic("wakeup1");
-      p->state = RUNNABLE;
-    }
+  if(p->chan == p && p->state == SLEEPING) {
+    p->state = RUNNABLE;
+  }
 }
 
 // Wake up all processes sleeping on chan. Never
-- 
cgit v1.2.3