queue_delayed_work(struct workqueue_struct *wq,struct delayed_work *dwork,unsigned long delay)
在上面的函数中,是否可以给出小于1的延迟?
答案 0 :(得分:1)
你可以延迟零或更多的jiffies。为了获得延迟,内核内部使用了一个计时器。最早的计时器可以到期是最近的下一个刻度。因此,可能的最小延迟是1 jiffies。如果零利润,延迟工作(dwork)将立即开始,没有任何延迟。
queue_delayed_work在内部调用__queue_delayed_work,其中配置计时器的实现已完成。最短到期时间是jiffies +延迟。有关详细信息,请参阅链接。
要安排工作时间少于jiffiy计时器,您可以使用hrtimers(高分辨率计时器)。
有关实施hrtimer的更多信息,请阅读以下链接:
答案 1 :(得分:0)
在queue_delayed_work
的情况下,唯一的延迟小于1 jiffy是0 jiffies。
delay
的类型为unsigned long
,并且指定为“排队前要等待的jiffies数量”。
答案 2 :(得分:0)
当我们调用wait_event_interruptible时(wq, condition)当我们使用wait_event_interruptible时,是否必须调用wake_up函数?