void EventQueue::Loop( ncycle_t steps )
{
/* Special case. */
if( steps == 0 && nextEventCycle == currentCycle )
{
Process( );
return;
}
ncycle_t stepCycles = steps;
while( stepCycles > 0 )
{
/* No events in this step amount, just change current cycle. */
if( nextEventCycle > currentCycle + stepCycles )
{
currentCycle += stepCycles;
break;
}
ncycle_t currentSteps = nextEventCycle - currentCycle;
currentCycle += currentSteps;
stepCycles -= currentSteps;
/* Process will update nextEventCycle for the next loop iteration. */
Process( );
}
}
NVMAIN 源碼解析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.