读书人

linux定时器实施的一个函数没有执行完

发布时间: 2013-10-25 14:36:53 作者: rapoo

linux定时器执行的一个函数没有执行完,又一次定时中断到来会怎样?
在一个程序当中使用timer_create创建定时器,并使用timer_settime设置定时器,假若该定时器到来时触发了其执行函数,但是第二次到来时若该函数还没有执行完会出现什么情况?
通过程序检测,使用下面函数时当多次触发只打印一次in func,那么难道内核知道该函数正在执行,我们又如何通过程序得知正在执行的信息?


void func(int signo)
{
printf("in func\n");
while(1);
}


万分感谢

[解决办法]
你为什么不记录当前timer是否被执行呢。
[解决办法]
要等第一次的中断函数执行完,才能执行第二次
[解决办法]
根本的解决办法是不要这种耗时的放在中断中执行
[解决办法]
设置一个原子变量做为标志
执行时置1,完了清0

中断产生后检测这个标志

读书人网 >UNIXLINUX

热点推荐