px4_work_queue: directly support SITL lockstep

- the purpose is to ensure that every WorkItem (and WorkItems scheduled
by WorkItems) is allowed to run to completion every step
 - per workqueue register a lockstep component whenever a work item is
added (if not already registered)
 - once the work queue is empty unregister component
This commit is contained in:
Daniel Agar
2021-01-04 09:38:05 +01:00
committed by Lorenz Meier
parent 8c71ecd97e
commit 98cff94702
10 changed files with 24 additions and 61 deletions
@@ -100,6 +100,10 @@ private:
BlockingList<WorkItem *> _work_items;
px4::atomic_bool _should_exit{false};
#if defined(ENABLE_LOCKSTEP_SCHEDULER)
int _lockstep_component {-1};
#endif // ENABLE_LOCKSTEP_SCHEDULER
};
} // namespace px4