首先请看timer中的部分代码(假设你熟悉timer的源码)
在计时器第一次启动的时候run_timer_list中的
if (!tv1.index) {
int n = 1;
do {
cascade_timers(tvecs[n]);
} while (tvecs[n]->index == 1 && ++n < NOOF_TVECS);
}
这段代码是吧后面的计时器补充到 即将要发生的256个滴答的队列中去,但是我有个问题是,当计时器第一次启动的时候,由于tv1初始化的时候index是0,因此这个语句一定会执行cascade_timers,所以tv2-tv5中的index都会+1,而timer_jiffies刚开始启动的时候是0,所以在重新分配 tv2-tv5.vec[0]的时候里面的计时器其实没有变动的,但是index都加1了,这样做不是会导致下标为0的计时器全部延迟了吗?