From a86d88312824833446d8ec1acfaf5f757d2c6520 Mon Sep 17 00:00:00 2001 From: Antonio cuadros Date: Wed, 28 Jul 2021 10:01:55 +0200 Subject: [PATCH] Keep graph manager alive until destruction --- .../agent/graph_manager/graph_manager.hpp | 20 +++++++++---------- micro_ros_agent/src/agent/Agent.cpp | 10 +--------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp b/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp index 8ad99c6..c3618b0 100644 --- a/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp +++ b/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp @@ -80,17 +80,15 @@ public: /** * @brief Default destructor. */ - ~GraphManager() = default; - - void stop() - { - if (microros_graph_publisher_.joinable()) - { - exit = true; - cv_.notify_one(); - microros_graph_publisher_.join(); - } - } + ~GraphManager() + { + if (microros_graph_publisher_.joinable()) + { + exit = true; + cv_.notify_one(); + microros_graph_publisher_.join(); + } + } /** * @brief Implementation of the notification logic that updates the micro-ROS graph. diff --git a/micro_ros_agent/src/agent/Agent.cpp b/micro_ros_agent/src/agent/Agent.cpp index da6af8b..cfef9c2 100644 --- a/micro_ros_agent/src/agent/Agent.cpp +++ b/micro_ros_agent/src/agent/Agent.cpp @@ -188,19 +188,11 @@ void Agent::run() void Agent::stop() { xrce_dds_agent_instance_.stop(); - - for (auto & element : graph_manager_map_) - { - element.second.stop(); - } - - graph_manager_map_.clear(); } graph_manager::GraphManager* Agent::find_or_create_graph_manager(eprosima::fastdds::dds::DomainId_t domain_id) { - -auto it = graph_manager_map_.find(domain_id); + auto it = graph_manager_map_.find(domain_id); if (it != graph_manager_map_.end()) { return &it->second;