当前位置: 技术问答>linux和unix
linux定时器执行的一个函数没有执行完,又一次定时中断到来会怎样?
来源: 互联网 发布时间:2017-04-28
本文导语: 在一个程序当中使用timer_create创建定时器,并使用timer_settime设置定时器,假若该定时器到来时触发了其执行函数,但是第二次到来时若该函数还没有执行完会出现什么情况? 通过程序检测,使用下面函数时当多次触...
在一个程序当中使用timer_create创建定时器,并使用timer_settime设置定时器,假若该定时器到来时触发了其执行函数,但是第二次到来时若该函数还没有执行完会出现什么情况?
通过程序检测,使用下面函数时当多次触发只打印一次in func,那么难道内核知道该函数正在执行,我们又如何通过程序得知正在执行的信息?
万分感谢
通过程序检测,使用下面函数时当多次触发只打印一次in func,那么难道内核知道该函数正在执行,我们又如何通过程序得知正在执行的信息?
void func(int signo)
{
printf("in funcn");
while(1);
}
万分感谢
|
你为什么不记录当前timer是否被执行呢。
|
要等第一次的中断函数执行完,才能执行第二次
|
根本的解决办法是不要这种耗时的放在中断中执行
|
设置一个原子变量做为标志
执行时置1,完了清0
中断产生后检测这个标志
执行时置1,完了清0
中断产生后检测这个标志