ScheduledWorkItem::ScheduleClear: remove item from runnable queue

The existing behavior is unexpected: if the work item is already on the
runnable queue, it will still be triggered after a call to ScheduleClear().
This can lead to race conditions.
This commit is contained in:
Beat Küng
2020-03-09 12:06:15 +01:00
committed by Daniel Agar
parent 977b80cee9
commit 18bc6cf872
4 changed files with 15 additions and 0 deletions
@@ -66,7 +66,9 @@ ScheduledWorkItem::ScheduleOnInterval(uint32_t interval_us, uint32_t delay_us)
void
ScheduledWorkItem::ScheduleClear()
{
// first clear any scheduled hrt call, then remove the item from the runnable queue
hrt_cancel(&_call);
WorkItem::ScheduleClear();
}
void