code:wakeup - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki
- 唤醒所有因某原因睡眠的进程
- 传入一个参数chan
- chan:进程睡眠原因
2109
2110 /*
2111 * Wake up all processes sleeping on chan.
2112 */
2113 wakeup(chan)
2114 {
2115 register struct proc *p;
2116 register c, i;
2117
2118 c = chan;
2119 p = &proc[0];
2120 i = NPROC;
2121 do {
2122 if(p->p_wchan == c) {
2123 setrun(p);
2124 }
2125 p++;
2126 } while(--i);
2127 }
2128 /* -------------------------*/
- 遍历proc数组,遇到因为chan而睡眠的进程时将其置为就绪状态