Skip to content

feat: parameterize MultiThreadedExecutorInternal configuration#30

Merged
atsushi421 merged 3 commits intomainfrom
feat/parameterize-multi-threaded-executor-internal
Apr 2, 2026
Merged

feat: parameterize MultiThreadedExecutorInternal configuration#30
atsushi421 merged 3 commits intomainfrom
feat/parameterize-multi-threaded-executor-internal

Conversation

@atsushi421
Copy link
Copy Markdown
Collaborator

@atsushi421 atsushi421 commented Jan 27, 2026

Description

Allow users to configure reentrant_parallelism, yield_before_execute, and next_exec_timeout parameters for MultiThreadedExecutorInternal used in reentrant callback groups.

  • CallbackIsolatedExecutor: parameters configurable via constructor arguments
  • ComponentManagerCallbackIsolated: parameters configurable via ROS parameters (reentrant_parallelism, yield_before_execute, next_exec_timeout_ns)

Related links

N/A

How was this PR tested?

  • Build passes
  • Verified reentrant_node_main runs correctly with parameterized executor

Notes for reviewers

N/A

Allow users to configure reentrant_parallelism, yield_before_execute,
and next_exec_timeout parameters when using MultiThreadedExecutorInternal
for reentrant callback groups.

- CallbackIsolatedExecutor: accept parameters via constructor arguments
- ComponentManagerCallbackIsolated: accept parameters via ROS parameters
  (reentrant_parallelism, yield_before_execute, next_exec_timeout_ns)
- Update sample application to demonstrate parameter usage
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR parameterizes the MultiThreadedExecutorInternal configuration by allowing users to configure reentrant_parallelism, yield_before_execute, and next_exec_timeout parameters for reentrant callback groups.

Changes:

  • Added constructor parameters to CallbackIsolatedExecutor for configuring reentrant executor behavior
  • Added ROS parameters to ComponentManagerCallbackIsolated for runtime configuration
  • Updated MultiThreadedExecutorInternal constructor to accept configuration parameters instead of hardcoded values

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
callback_isolated_executor/include/callback_isolated_executor/callback_isolated_executor.hpp Added constructor parameters and member variables for reentrant executor configuration
callback_isolated_executor/src/callback_isolated_executor.cpp Updated constructor and reentrant callback group spinning to use configurable parameters
callback_isolated_executor/include/callback_isolated_executor/multi_threaded_executor_internal.hpp Replaced hardcoded values with constructor parameters
callback_isolated_executor/src/component_container_callback_isolated.cpp Added ROS parameter declarations and usage for runtime configuration
cie_sample_application/src/reentrant_node_main.cpp Updated example to use new parameterized constructor

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread callback_isolated_executor/src/component_container_callback_isolated.cpp Outdated
- Add default member initializers to CallbackIsolatedExecutor
- Validate reentrant_parallelism parameter is non-negative before casting
@atsushi421 atsushi421 requested a review from sykwer January 27, 2026 22:58
@atsushi421 atsushi421 merged commit 1ea2a77 into main Apr 2, 2026
3 checks passed
@atsushi421 atsushi421 deleted the feat/parameterize-multi-threaded-executor-internal branch April 2, 2026 06:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants