【发布时间】:2018-06-04 20:10:09
【问题描述】:
我正在学习 Linux 设备驱动程序,尤其是计时器和等待队列。 我希望它们在单个字符驱动程序中一起工作,我可以使用 IO 控制命令使驱动程序进入睡眠状态,同时我继续使用计时器在用户区获取 fasync 中断。 我注意到如果我使用
wait_event_interruptible();
然后,当计时器到期时,驱动程序退出等待并返回代码 -512,即使条件尚未满足。但是如果我使用
wait_event();
那么问题就解决了。我读到了 wake_up_event_interruptible() 如果中断唤醒进程,则返回非零返回码。
我的理解是正确的,定时器会中断添加它的过程(我在文本中找不到任何证据),因为从我的理解来看,定时器函数变得独立于添加它的进程状态。
【问题讨论】:
标签: linux linux-kernel linux-device-driver