You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Utilize rclcpp::WaitSet as part of the executors (ros2#2142)
* Deprecate callback_group call taking context
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Add base executor objects that can be used by implementors
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Template common operations
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Address reviewer feedback:
* Add callback to EntitiesCollector constructor
* Make function to check automatically added callback groups take a list
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Lint
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Address reviewer feedback and fix templates
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Lint and docs
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Make executor own the notify waitable
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Add pending queue to collector, remove from waitable
Also change node's get_guard_condition to return shared_ptr
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Change interrupt guard condition to shared_ptr
Check if guard condition is valid before adding it to the waitable
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Lint and docs
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Utilize rclcpp::WaitSet as part of the executors
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Don't exchange atomic twice
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Fix add_node and add more tests
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Make get_notify_guard_condition follow API tick-tock
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Improve callback group tick-tocking
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Don't lock twice
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Address reviewer feedback
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Add thread safety annotations and make locks consistent
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* @wip
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Reset callback groups for multithreaded executor
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Avoid many small function calls when building executables
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Re-trigger guard condition if buffer has data
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Address reviewer feedback
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Trace points
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Remove tracepoints
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Reducing diff
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Reduce diff
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Uncrustify
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Restore tests
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Back to weak_ptr and reduce test time
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* reduce diff and lint
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Restore static single threaded tests that weren't working before
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Restore more tests
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Fix multithreaded test
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Fix assert
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Fix constructor test
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Change ready_executables signature back
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Don't enforce removing callback groups before nodes
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Remove the "add_valid_node" API
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Only notify if the trigger condition is valid
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Only trigger if valid and needed
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Fix spin_some/spin_all implementation
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Restore single threaded executor
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Picking ABI-incompatible executor changes
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Add PIMPL
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Additional waitset prune
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Fix bad merge
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Expand test timeout
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Introduce method to clear expired entities from a collection
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Make sure to call remove_expired_entities().
Signed-off-by: Chris Lalancette <clalancette@gmail.com>
* Prune queued work when callback group is removed
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Prune subscriptions from dynamic storage
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Styles fixes.
Signed-off-by: Chris Lalancette <clalancette@gmail.com>
* Re-trigger guard conditions
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Condense to just use watiable.take_data
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Lint
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Address reviewer comments (nits)
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Lock mutex when copying
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Refactors to static single threaded based on reviewers
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* More small refactoring
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Lint
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Lint
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Add ready executable accessors to WaitResult
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Make use of accessors from wait_set
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Fix tests
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Fix more tests
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Tidy up single threaded executor implementation
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* Don't null out timer, rely on call
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
* change how timers are checked from wait result in executors
Signed-off-by: William Woodall <william@osrfoundation.org>
* peak -> peek
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix bug in next_waitable logic
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix bug in StaticSTE that broke the add callback groups to executor tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* style
Signed-off-by: William Woodall <william@osrfoundation.org>
---------
Signed-off-by: Michael Carroll <mjcarroll@intrinsic.ai>
Signed-off-by: Michael Carroll <michael@openrobotics.org>
Signed-off-by: Chris Lalancette <clalancette@gmail.com>
Signed-off-by: William Woodall <william@osrfoundation.org>
Co-authored-by: Chris Lalancette <clalancette@gmail.com>
Co-authored-by: William Woodall <william@osrfoundation.org>
0 commit comments