From 3a053fb46c3c41326f204ed3a2396c84f712f2db Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 12:58:13 +0100 Subject: [PATCH] Avoid unecessary creation of MultiThreadedExecutor (#3090) (#3096) (cherry picked from commit 8cd4d47ec5c6bfba39002b05a57d026a5455ebd9) Signed-off-by: solonovamax Co-authored-by: solo --- rclcpp_components/src/component_container_mt.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rclcpp_components/src/component_container_mt.cpp b/rclcpp_components/src/component_container_mt.cpp index 9dcbade712..8e2a113bec 100644 --- a/rclcpp_components/src/component_container_mt.cpp +++ b/rclcpp_components/src/component_container_mt.cpp @@ -23,16 +23,16 @@ int main(int argc, char * argv[]) /// Component container with a multi-threaded executor. rclcpp::init(argc, argv); - auto exec = std::make_shared(); - auto node = std::make_shared(); + rclcpp::executors::MultiThreadedExecutor::SharedPtr exec = nullptr; + const auto node = std::make_shared(); if (node->has_parameter("thread_num")) { const auto thread_num = node->get_parameter("thread_num").as_int(); exec = std::make_shared( rclcpp::ExecutorOptions{}, thread_num); - node->set_executor(exec); } else { - node->set_executor(exec); + exec = std::make_shared(); } + node->set_executor(exec); exec->add_node(node); exec->spin(); }