From b348abcf49e6bf35f20b41e737ac2cd56922294b Mon Sep 17 00:00:00 2001 From: Miguel Company Date: Thu, 23 Jun 2022 11:55:01 +0200 Subject: [PATCH] Take all available samples on service/client on_data_available. Signed-off-by: Miguel Company --- .../include/rmw_fastrtps_shared_cpp/custom_client_info.hpp | 2 +- .../include/rmw_fastrtps_shared_cpp/custom_service_info.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/custom_client_info.hpp b/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/custom_client_info.hpp index 980817062..6a4b4d515 100644 --- a/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/custom_client_info.hpp +++ b/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/custom_client_info.hpp @@ -99,7 +99,7 @@ class ClientListener : public eprosima::fastdds::dds::DataReaderListener data.is_cdr_buffer = true; data.data = response.buffer_.get(); data.impl = nullptr; // not used when is_cdr_buffer is true - if (reader->take_next_sample(&data, &response.sample_info_) == ReturnCode_t::RETCODE_OK) { + while (reader->take_next_sample(&data, &response.sample_info_) == ReturnCode_t::RETCODE_OK) { if (response.sample_info_.valid_data) { response.sample_identity_ = response.sample_info_.related_sample_identity; diff --git a/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/custom_service_info.hpp b/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/custom_service_info.hpp index 0ddbfd04f..9d50c5a3d 100644 --- a/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/custom_service_info.hpp +++ b/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/custom_service_info.hpp @@ -212,7 +212,7 @@ class ServiceListener : public eprosima::fastdds::dds::DataReaderListener data.is_cdr_buffer = true; data.data = request.buffer_; data.impl = nullptr; // not used when is_cdr_buffer is true - if (reader->take_next_sample(&data, &request.sample_info_) == ReturnCode_t::RETCODE_OK) { + while (reader->take_next_sample(&data, &request.sample_info_) == ReturnCode_t::RETCODE_OK) { if (request.sample_info_.valid_data) { request.sample_identity_ = request.sample_info_.sample_identity; // Use response subscriber guid (on related_sample_identity) when present.