Mercurial > hg > Members > menikon > CbC_xv6
diff src/proc.c @ 36:d4e5846ddb48
cbc_piperead
author | mir3636 |
---|---|
date | Fri, 22 Feb 2019 22:15:33 +0900 |
parents | 96af12a50fdb |
children | fb3e5a2f76c1 |
line wrap: on
line diff
--- a/src/proc.c Fri Feb 22 16:32:51 2019 +0900 +++ b/src/proc.c Fri Feb 22 22:15:33 2019 +0900 @@ -528,6 +528,26 @@ } } +__code cbc_wakeup1(void *chan) +{ + struct proc *p; + + for(p = ptable.proc; p < &ptable.proc[NPROC]; p++) { + if(p->state == SLEEPING && p->chan == chan) { + p->state = RUNNABLE; + } + } + + release(&ptable.lock); + goto next(); +} + +__code cbc_wakeup(void *chan) +{ + acquire(&ptable.lock); + cbc_wakeup1(chan); +} + // Wake up all processes sleeping on chan. void wakeup(void *chan) {