_spin_count

欲获取锁存器的进程基本上使用 Willing-to-wait 模式。 Willing-to-wait

式就是一直等到获取锁存器为止的意思。 进程若在获取锁存器过程中失败,
则循环适当的次数, 并试图重新获取锁存器, 它的循环次数与
_SPIN_COUNT
(缺省值是
2000 )参数值相同。将此以代码表示则如下:

function process_get_latch()    
{    
int result=get_latch();    
if(result == SUCCESS)    
{    
return SUCCESS;    
}    
else if(result == FAIL)    
{    
- 如果锁存器获得失败, 则重新尝试与_SPIN_COUNT 相同的次数。    
for(i=1; i<=_SPIN_COUNT; i++)    
{    
burn_cpu(); - 设计成一定时间内消耗 CPU。    
result=get_latch();      if(result == SUCCESS) return SUCCESS;    
}    
- 循环_SPIN_COUNT 相同次数后, 若没能获得则进入睡眠状态。   
sleep();    
}    
}  

 

 

你可能感兴趣的:(设计模式)