|
这是来自《莱昂氏UNIX源代码分析》的一个函数,小生没看动"&runout",请高手指点
setrun(p)
{
register struct proc *rp;
rp=p;
rp->p_wchan=0;
rp->p_stat=SRUN;
if(rp->p_pri<curpri)
runrun++;
if(runout !=0&&(rp->p_flag&SLOAD)==0)
{
runout=0;
wakeup(&runout);
}
}
书上说&runout
“语法上是个地址变量,但是语义上是一个独特的位模式,这是一个在UNIX中处处都要使
用的方法实例,程序员由于某种特殊的目的需要一独特的位模式。只要它是独特的就满足
要求,其精确值并无意义,”。
小生实在没看懂,请大家帮忙
-- |
|