reason:
work_timer_expiry may be called in thread context

Signed-off-by: hujun5 <hujun5@xiaomi.com>
This commit is contained in:
hujun5 2025-01-17 08:54:58 +08:00 committed by Xiang Xiao
parent 8f435a2941
commit b8660fc39c

View file

@ -68,9 +68,8 @@ static void work_timer_expiry(wdparm_t arg)
{
FAR struct work_s *work = (FAR struct work_s *)arg;
DEBUGASSERT(up_interrupt_context());
irqstate_t flags = spin_lock_irqsave(&work->wq->lock);
sched_lock();
/* We have being canceled */
@ -80,6 +79,7 @@ static void work_timer_expiry(wdparm_t arg)
}
spin_unlock_irqrestore(&work->wq->lock, flags);
sched_unlock();
}
static bool work_is_canceling(FAR struct kworker_s *kworkers, int nthreads,