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

On Wed, 18 Nov 2015, 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.

Well. That's nice and good. But how will that new function solveanything? After you drop the lock the state is not longer valid.