Re: [PATCH v4 01/22] timer: Allow to check when the timer callback has not finished yet

From: Tejun Heo
Date: Mon Jan 25 2016 - 13:44:49 EST


On Mon, Jan 25, 2016 at 04:44:50PM +0100, Petr Mladek wrote:
> timer_pending() checks whether the list of callbacks is empty.
> Each callback is removed from the list before it is called,
> see call_timer_fn() in __run_timers().
> Sometimes we need to make sure that the callback has finished.
> For example, if we want to free some resources that are accessed
> by the callback.
> For this purpose, this patch adds timer_active(). It checks both
> the list of callbacks and the running_timer. It takes the base_lock
> to see a consistent state.
> I plan to use it to implement delayed works in kthread worker.
> But I guess that it will have wider use. In fact, I wonder if
> timer_pending() is misused in some situations.

I don't think this is still necessary. More on this later.