Skip to content

Add Callback Group Events Executor (Jazzy Backport)#3163

Open
skyegalaxy wants to merge 8 commits into
jazzyfrom
skyegalaxy/jazzy-cbg-exec-backport
Open

Add Callback Group Events Executor (Jazzy Backport)#3163
skyegalaxy wants to merge 8 commits into
jazzyfrom
skyegalaxy/jazzy-cbg-exec-backport

Conversation

@skyegalaxy
Copy link
Copy Markdown
Member

@skyegalaxy skyegalaxy commented Jun 5, 2026

Description

Adds the Callback Group Events Executor introduced in #3097 to rclcpp mainline for Jazzy. Also updates the executor tests with the new executor.

The following compatibility changes were needed:

  • Add get_clock to TimerBase. Ought to be an additive, non-virtual function which should not break ABI.
  • Remove the use of designated initializers, which is a C++20 feature
  • Adapted executor signatures (add_node, remove_node,
    add_callback_group, remove_callback_group) to pass by value (it was changed for lyrical in perf: Optimized out shared_ptr copies #3079)
  • Add new component_container_events_cbg executable which works similarly to the existing component_container_mt exec, allowing the passing of thread_num via ROS param
  • removed call to get_timers in registered_entity_cache, as they were added to fix action goal expiration, but the jazzy fix is implemented in a different way with a separate thread (fix: Fixed expiring of goals if events executor is used #2674)

Is this user-facing behavior change?

Users will now be able to use the Callback Group Events Executor on Jazzy.
Users will be able to use component containers with the Callback Group Events Executor on jazzy with the addition of component_container_events_cbg.

Did you use Generative AI?

Claude Opus 4.8 was used to copy over the sources from rolling and to cumulatively apply jazzy compatibility fixes as needed, with my guidance. Changes were manually verified and separated out into isolated commits by me.

Additional Information

Skyler Medeiros added 7 commits June 5, 2026 10:02
Signed-off-by: Skyler Medeiros <skye@polymathrobotics.com>
Signed-off-by: Skyler Medeiros <skye@polymathrobotics.com>
Signed-off-by: Skyler Medeiros <skye@polymathrobotics.com>
Signed-off-by: Skyler Medeiros <skye@polymathrobotics.com>
Signed-off-by: Skyler Medeiros <skye@polymathrobotics.com>
Signed-off-by: Skyler Medeiros <skye@polymathrobotics.com>
Signed-off-by: Skyler Medeiros <skye@polymathrobotics.com>
@skyegalaxy
Copy link
Copy Markdown
Member Author

Pulls: #3163
Gist: https://gist.githubusercontent.com/skyegalaxy/ad26cb3985280b4b596b25fcd61f0172/raw/1e259d33d05f01573e82207ce27f16308a0bf71d/cbg_exec_jazzy_backport.repos
BUILD args: --packages-above-and-dependencies rclcpp
TEST args: --packages-above rclcpp
ROS Distro: jazzy
Job: ci_launcher
ci Launcher ran: https://ci.ros2.org/job/ci_launcher/19492/

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

Signed-off-by: Skyler Medeiros <skye@polymathrobotics.com>
@skyegalaxy
Copy link
Copy Markdown
Member Author

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@skyegalaxy
Copy link
Copy Markdown
Member Author

rhel test failures are the message_filters tests we've seen before that are unassociated with these changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants