Volatile经典使用场景
Volatile每次在访问变量时都重新从内存中获取,而不是通过寄存器的变量别名来访问
在内核代码短时间延迟执行时,有一种方法叫忙等待
unsigned long delay = jiffies +5*HZ;
while(time_before(jiffies,delay))
cond_resched();//调度优先级更高的程序运行
对于C编译器来说,通常只将变量装载一次
但是jiffies会随着时钟中断的发生从而不断的增加,怎么保证jiffies每次重新被加载?
在<linux/jiffies.h>源码中给出了答案
extern unsigned long volatile __jiffy_data jiffies;
增加volatile关键字,此为经典使用场景
1864

被折叠的 条评论
为什么被折叠?



