【发布时间】:2012-08-22 18:05:29
【问题描述】:
我正在查看一些使用 add_timer 和 del_timer 启动和停止计时器的 Linux 内核模块代码。
有时,实现会在调用 del_timer 后立即删除计时器“对象”(struct timer_list)。
我想知道这是否安全。请注意,这是一个单处理器实现,禁用了 SMP(这将强制使用 del_timer_sync)。
del_timer_sync 实现检查计时器是否正在任何地方处理,但 del_timer 没有。在 UP 系统上,是否可以在不知道 del_timer 的情况下处理计时器,即计时器已从挂起的计时器列表中删除并正在处理?
【问题讨论】:
-
只需使用
del_timer_sync(),这样当您或下一个人决定他们实际上想在 SMP 系统上使用此代码时,它不会中断 :)
标签: timer linux-kernel