feat: Added callback group events executor#3097
Open
jmachowinski wants to merge 8 commits intoros2:rollingfrom
Open
feat: Added callback group events executor#3097jmachowinski wants to merge 8 commits intoros2:rollingfrom
jmachowinski wants to merge 8 commits intoros2:rollingfrom
Conversation
273c322 to
66467b3
Compare
alsora
reviewed
Mar 15, 2026
rclcpp/include/rclcpp/executors/events_cbg_executor/events_cbg_executor.hpp
Show resolved
Hide resolved
alsora
reviewed
Mar 15, 2026
rclcpp/include/rclcpp/executors/events_cbg_executor/events_cbg_executor.hpp
Show resolved
Hide resolved
alsora
reviewed
Mar 15, 2026
rclcpp/include/rclcpp/experimental/executors/events_cbg_executor/events_cbg_executor.hpp
Outdated
Show resolved
Hide resolved
alsora
reviewed
Mar 15, 2026
rclcpp/include/rclcpp/experimental/executors/events_cbg_executor/events_cbg_executor.hpp
Outdated
Show resolved
Hide resolved
alsora
reviewed
Mar 15, 2026
rclcpp/include/rclcpp/executors/events_cbg_executor/events_cbg_executor.hpp
Outdated
Show resolved
Hide resolved
alsora
reviewed
Mar 15, 2026
alsora
reviewed
Mar 15, 2026
rclcpp/src/rclcpp/executors/events_cbg_executor/events_cbg_executor.cpp
Outdated
Show resolved
Hide resolved
alsora
reviewed
Mar 15, 2026
rclcpp/src/rclcpp/experimental/executors/events_cbg_executor/events_cbg_executor.cpp
Outdated
Show resolved
Hide resolved
Collaborator
|
@jmachowinski can you add this to the executor unit-tests? |
skyegalaxy
reviewed
Mar 16, 2026
| not_ready = true; | ||
| } | ||
|
|
||
| std::mutex ready_mutex; |
Member
There was a problem hiding this comment.
any chance we could change this to a std::recursive_mutex? It was needed for the action goal fixes in #3018 and ros2/rcl#1295 to work with the EventsCBGExecutor.
f7b3021 to
7eb2fca
Compare
This commit adds the callback group events executor. It features: - multithreading support - correct handling of sim time - usage of the events subsystem Signed-off-by: Janosch Machowinski <J.Machowinski@cellumation.com>
Signed-off-by: Janosch Machowinski <j.machowinski@cellumation.com>
Signed-off-by: Janosch Machowinski <j.machowinski@cellumation.com>
Signed-off-by: Janosch Machowinski <j.machowinski@cellumation.com>
Signed-off-by: Janosch Machowinski <j.machowinski@cellumation.com>
…ager This code was copied straight from the executor and seems to be a workaround for the multithreaded executor, that breaks in this use case. The correct solution for us is to do the timer->call() from within the worker thread. This fixes a deadlock due to double acquisition of an internal lock within the timer manager. Signed-off-by: Janosch Machowinski <J.Machowinski@cellumation.com>
In case the next timer wakeup time is not changed by an insertion of a timer, don't wake up the timer thread. Signed-off-by: Janosch Machowinski <J.Machowinski@cellumation.com>
4933042 to
26fd9db
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit adds the callback group events executor. It features:
Description
This moved the events cbg executor from cm_executors into rlcpp mainline.
Did you use Generative AI?
No