@@ -159,12 +159,6 @@ class ClientBaseImpl
159159 // take_data for execution
160160 std::deque<std::shared_ptr<ClientBaseData>> data_queue_;
161161
162- // Lock for unreported events
163- std::recursive_mutex unreported_events_mutex_;
164-
165- // number of events, that were not yet reported by is_ready
166- size_t num_unreported_events_ = 0 ;
167-
168162 // Lock for action_client_
169163 std::recursive_mutex action_client_mutex_;
170164
@@ -336,6 +330,8 @@ ClientBase::add_to_wait_set(rcl_wait_set_t * wait_set)
336330bool
337331ClientBase::is_ready (rcl_wait_set_t * wait_set)
338332{
333+
334+
339335 bool is_feedback_ready{false };
340336 bool is_status_ready{false };
341337 bool is_goal_response_ready{false };
@@ -358,9 +354,7 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
358354 }
359355 }
360356
361- size_t cnt = 0 ;
362357 if (is_feedback_ready) {
363- cnt++;
364358 std::shared_ptr<void > feedback_message;
365359 {
366360 std::lock_guard<std::recursive_mutex> lock (pimpl_->action_client_mutex_ );
@@ -374,10 +368,11 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
374368 std::make_shared<ClientBaseData>(
375369 ClientBaseData::FeedbackReadyData (
376370 ret, feedback_message)));
371+
372+ return true ;
377373 }
378374
379375 if (is_status_ready) {
380- cnt++;
381376 std::shared_ptr<void > status_message;
382377 {
383378 std::lock_guard<std::recursive_mutex> lock (pimpl_->action_client_mutex_ );
@@ -391,10 +386,11 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
391386 std::make_shared<ClientBaseData>(
392387 ClientBaseData::StatusReadyData (
393388 ret, status_message)));
389+
390+ return true ;
394391 }
395392
396393 if (is_goal_response_ready) {
397- cnt++;
398394 rmw_request_id_t response_header;
399395 std::shared_ptr<void > goal_response;
400396 {
@@ -404,15 +400,17 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
404400 ret = rcl_action_take_goal_response (
405401 pimpl_->client_handle .get (), &response_header, goal_response.get ());
406402 }
403+
407404 std::lock_guard<std::recursive_mutex> lock (pimpl_->data_queue_mutex_ );
408405 pimpl_->data_queue_ .push_back (
409406 std::make_shared<ClientBaseData>(
410407 ClientBaseData::GoalResponseData (
411408 ret, response_header, goal_response)));
409+
410+ return true ;
412411 }
413412
414413 if (is_result_response_ready) {
415- cnt++;
416414 rmw_request_id_t response_header;
417415 std::shared_ptr<void > result_response;
418416 {
@@ -421,15 +419,17 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
421419 ret = rcl_action_take_result_response (
422420 pimpl_->client_handle .get (), &response_header, result_response.get ());
423421 }
422+
424423 std::lock_guard<std::recursive_mutex> lock (pimpl_->data_queue_mutex_ );
425424 pimpl_->data_queue_ .push_back (
426425 std::make_shared<ClientBaseData>(
427426 ClientBaseData::ResultResponseData (
428427 ret, response_header, result_response)));
428+
429+ return true ;
429430 }
430431
431432 if (is_cancel_response_ready) {
432- cnt++;
433433 rmw_request_id_t response_header;
434434 std::shared_ptr<void > cancel_response;
435435 {
@@ -444,21 +444,10 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
444444 std::make_shared<ClientBaseData>(
445445 ClientBaseData::CancelResponseData (
446446 ret, response_header, cancel_response)));
447+ return true ;
447448 }
448449
449- bool return_data_ready = false ;
450-
451- {
452- std::lock_guard<std::recursive_mutex> lock (pimpl_->unreported_events_mutex_ );
453- pimpl_->num_unreported_events_ += cnt;
454-
455- if (pimpl_->num_unreported_events_ > 0 ) {
456- pimpl_->num_unreported_events_ --;
457- return_data_ready = true ;
458- }
459- }
460-
461- return return_data_ready;
450+ return false ;
462451}
463452
464453void
0 commit comments