diff --git a/rclcpp_action/src/client_base.cpp b/rclcpp_action/src/client_base.cpp index 8f9d16b922..a823b65e92 100644 --- a/rclcpp_action/src/client_base.cpp +++ b/rclcpp_action/src/client_base.cpp @@ -181,6 +181,7 @@ class ClientBaseImpl std::map pending_cancel_responses; std::recursive_mutex cancel_requests_mutex; + std::mutex goal_id_rng_mutex; std::independent_bits_engine< std::mt19937, 8, unsigned int> random_bytes_generator; }; @@ -480,6 +481,7 @@ GoalUUID ClientBase::generate_goal_id() { GoalUUID goal_id; + std::lock_guard lock(pimpl_->goal_id_rng_mutex); // TODO(hidmic): Do something better than this for UUID generation. // std::generate( // goal_id.uuid.begin(), goal_id.uuid.end(),