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(); }