From 7e6c958e7242dda861dea5dc70ce391e710ddb91 Mon Sep 17 00:00:00 2001 From: Pedro Pena Date: Mon, 3 Aug 2020 20:47:18 -0400 Subject: [PATCH] changed from atomic to const Signed-off-by: Pedro Pena --- rclcpp/include/rclcpp/callback_group.hpp | 8 ++++---- rclcpp/src/rclcpp/callback_group.cpp | 7 ++++--- rclcpp/src/rclcpp/executor.cpp | 4 ++-- .../executors/static_executor_entities_collector.cpp | 1 - 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/rclcpp/include/rclcpp/callback_group.hpp b/rclcpp/include/rclcpp/callback_group.hpp index 2398679634..515bf33b38 100644 --- a/rclcpp/include/rclcpp/callback_group.hpp +++ b/rclcpp/include/rclcpp/callback_group.hpp @@ -57,7 +57,7 @@ class CallbackGroup RCLCPP_SMART_PTR_DEFINITIONS(CallbackGroup) RCLCPP_PUBLIC - explicit CallbackGroup(CallbackGroupType group_type, bool allow_executor_to_add = true); + explicit CallbackGroup(CallbackGroupType group_type, const bool allow_executor_to_add = true); template rclcpp::SubscriptionBase::SharedPtr @@ -129,8 +129,8 @@ class CallbackGroup * add a callback group */ RCLCPP_PUBLIC - std::atomic_bool & - allow_executor_to_add() {return allow_executor_to_add_;} + const bool & + allow_executor_to_add() const {return allow_executor_to_add_;} protected: RCLCPP_DISABLE_COPY(CallbackGroup) @@ -173,7 +173,7 @@ class CallbackGroup std::vector client_ptrs_; std::vector waitable_ptrs_; std::atomic_bool can_be_taken_from_; - std::atomic_bool allow_executor_to_add_; + const bool allow_executor_to_add_; private: template diff --git a/rclcpp/src/rclcpp/callback_group.cpp b/rclcpp/src/rclcpp/callback_group.cpp index df3363143b..5bcdf24c09 100644 --- a/rclcpp/src/rclcpp/callback_group.cpp +++ b/rclcpp/src/rclcpp/callback_group.cpp @@ -19,10 +19,11 @@ using rclcpp::CallbackGroup; using rclcpp::CallbackGroupType; -CallbackGroup::CallbackGroup(CallbackGroupType group_type, bool allow_executor_to_add) +CallbackGroup::CallbackGroup(CallbackGroupType group_type, const bool allow_executor_to_add) : type_(group_type), associated_with_executor_(false), - can_be_taken_from_(true) -{allow_executor_to_add_.store(allow_executor_to_add);} + can_be_taken_from_(true), + allow_executor_to_add_(allow_executor_to_add) +{} std::atomic_bool & diff --git a/rclcpp/src/rclcpp/executor.cpp b/rclcpp/src/rclcpp/executor.cpp index b6b70ea9cd..101f66a1cc 100644 --- a/rclcpp/src/rclcpp/executor.cpp +++ b/rclcpp/src/rclcpp/executor.cpp @@ -151,7 +151,7 @@ Executor::add_allowable_unassigned_callback_groups() [this, node](rclcpp::CallbackGroup::WeakPtr group_ptr) { auto shared_group_ptr = group_ptr.lock(); - if (shared_group_ptr && shared_group_ptr->allow_executor_to_add().load() && + if (shared_group_ptr && shared_group_ptr->allow_executor_to_add() && !shared_group_ptr->get_associated_with_executor_atomic().load()) { add_callback_group(shared_group_ptr, node); @@ -234,7 +234,7 @@ Executor::add_node(rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_pt for (auto & weak_group : node_ptr->get_callback_groups()) { auto group_ptr = weak_group.lock(); if (group_ptr != nullptr && !group_ptr->get_associated_with_executor_atomic().load() && - group_ptr->allow_executor_to_add().load()) + group_ptr->allow_executor_to_add()) { add_callback_group(group_ptr, node_ptr, notify); } diff --git a/rclcpp/src/rclcpp/executors/static_executor_entities_collector.cpp b/rclcpp/src/rclcpp/executors/static_executor_entities_collector.cpp index 0ef2d0b3fe..d4fe59864a 100644 --- a/rclcpp/src/rclcpp/executors/static_executor_entities_collector.cpp +++ b/rclcpp/src/rclcpp/executors/static_executor_entities_collector.cpp @@ -253,7 +253,6 @@ StaticExecutorEntitiesCollector::add_callback_group( { rclcpp::CallbackGroup::WeakPtr weak_group_ptr = group_ptr; auto insert_info = weak_groups_to_nodes_.insert(std::make_pair(weak_group_ptr, node_ptr)); - group_ptr->allow_executor_to_add().store(false); bool was_inserted = insert_info.second; if (!was_inserted) { throw std::runtime_error("Callback group was already added to executor.");