From 0c064140b7eb154ba4de7c4052a23f1137dc0901 Mon Sep 17 00:00:00 2001 From: atsushi421 Date: Tue, 11 Nov 2025 12:52:44 +0900 Subject: [PATCH 1/2] fix: dirty --- .../src/component_container_callback_isolated.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/callback_isolated_executor/src/component_container_callback_isolated.cpp b/callback_isolated_executor/src/component_container_callback_isolated.cpp index b93732b..0bdf61e 100644 --- a/callback_isolated_executor/src/component_container_callback_isolated.cpp +++ b/callback_isolated_executor/src/component_container_callback_isolated.cpp @@ -51,6 +51,7 @@ class ComponentManagerCallbackIsolated node_id_to_executor_wrappers_; rclcpp::Publisher::SharedPtr client_publisher_; + std::mutex client_publisher_mutex_; }; ComponentManagerCallbackIsolated::~ComponentManagerCallbackIsolated() { @@ -141,11 +142,10 @@ void ComponentManagerCallbackIsolated::add_node_to_executor(uint64_t node_id) { std::thread([&executor_wrapper, group_id, this]() { auto tid = syscall(SYS_gettid); - // dirty - for (int i = 0; i < 3; i++) { - std::this_thread::sleep_for(std::chrono::milliseconds(100)); + { + std::lock_guard lock(this->client_publisher_mutex_); cie_thread_configurator::publish_callback_group_info( - this->client_publisher_, tid, group_id); + this->client_publisher_, tid, group_id); } executor_wrapper.thread_initialized = true; From 83132c19611135edd70813c29058931919f8402c Mon Sep 17 00:00:00 2001 From: atsushi421 Date: Wed, 12 Nov 2025 10:12:21 +0900 Subject: [PATCH 2/2] fix --- .../src/component_container_callback_isolated.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/callback_isolated_executor/src/component_container_callback_isolated.cpp b/callback_isolated_executor/src/component_container_callback_isolated.cpp index 0bdf61e..fa6fb2f 100644 --- a/callback_isolated_executor/src/component_container_callback_isolated.cpp +++ b/callback_isolated_executor/src/component_container_callback_isolated.cpp @@ -145,7 +145,7 @@ void ComponentManagerCallbackIsolated::add_node_to_executor(uint64_t node_id) { { std::lock_guard lock(this->client_publisher_mutex_); cie_thread_configurator::publish_callback_group_info( - this->client_publisher_, tid, group_id); + this->client_publisher_, tid, group_id); } executor_wrapper.thread_initialized = true;