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.