如何解决可以同时执行两个 Linux 内核计时器处理程序吗?
我正在编写一个带有定时器的内核模块,如下所示,
timer1_callback(){
// task of timer1
}
timer0_callback(){
while(1){
// Do some input processing
if (condition){
Update timer1 to fire in 15 seconds from now
}
}
}
module_init(){
//Initialize timer0 to fire in 1 second.
timer_setup(&timerl0,timer0_callback,0);
mod_timer(&timerl0,jiffies + msecs_to_jiffies(1000));
//Initialize timer1 to fire in 15 seconds.
timer_setup(&timerl1,timer1_callback,0);
mod_timer(&timerl1,jiffies + msecs_to_jiffies(15000));
}
我已经按照上面的方法初始化了定时器。在此设置中, timer0 将处于无限循环中,等待一些输入(来自输入事件子系统)。根据该输入,如果满足条件,timer1 将在 15 秒内更新为从该点开始。
当我执行上述系统时,timer1_callback 根本没有被执行。即使满足条件,15s后也没有触发。
单独的计时器是在单独的线程中执行还是在单个线程中执行? 为什么第二个计时器从未被触发?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。