Chinaunix
标题:
对__might_sleep的一个疑问
[打印本页]
作者:
amarant
时间:
2011-02-15 10:25
标题:
对__might_sleep的一个疑问
void __might_sleep(char *file, int line)
{
#if defined(in_atomic)
static unsigned long prev_jiffy; /* ratelimiting */
if ((in_atomic() || irqs_disabled()) &&
system_state == SYSTEM_RUNNING) {
if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy)
return;
prev_jiffy = jiffies;
printk(KERN_ERR "Debug: sleeping function called from invalid"
" context at %s:%d\n", file, line);
printk("in_atomic():%d, irqs_disabled():%d\n",
in_atomic(), irqs_disabled());
dump_stack();
}
#endif
}
复制代码
其中这个prev_jiffy不是一直都是为0吗?那这个判断if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy)有什么意义?
作者:
Godbach
时间:
2011-02-15 10:48
看一下这个变量的类型
static
unsigned long prev_jiffy; /* ratelimiting */
作者:
amarant
时间:
2011-02-15 11:29
回复
2#
Godbach
明白了,刚才只想到static初始化的值为0,忘记了static会一直存在不会释放的了
作者:
Godbach
时间:
2011-02-15 11:52
是的。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2