4

我正在使用一个周期性计时器,其中处理函数在使用 mod_timer 完成时重新启动计时器。当我使用 del_timer_sync() 终止计时器并且处理程序正在运行时,这是否意味着计时器被重新武装并且没有被删除,或者该函数是否以某种方式终止了计时器?在它不杀死计时器的情况下,有没有办法通过返回值知道函数是否必须等待处理程序完成?在这种情况下,我可以循环调用 del_timer_sync() 直到返回不是那个值。我正在使用的内核版本是 2.6.26.5

4

1 回答 1

4

查看del_timer_sync()Linux内核中是如何定义的,它将确保在它返回之前,定时器被杀死并且不会被重新武装。

换句话说,del_timer_sync()是一个阻塞函数调用。调用时,如果计时器处理程序正在运行,则del_timer_sync()计时器处理程序完成最后一次执行后返回。

于 2012-11-28T04:49:40.667 回答