@@ -159,12 +159,6 @@ class ClientBaseImpl
159
159
// take_data for execution
160
160
std::deque<std::shared_ptr<ClientBaseData>> data_queue_;
161
161
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
-
168
162
// Lock for action_client_
169
163
std::recursive_mutex action_client_mutex_;
170
164
@@ -336,6 +330,8 @@ ClientBase::add_to_wait_set(rcl_wait_set_t * wait_set)
336
330
bool
337
331
ClientBase::is_ready (rcl_wait_set_t * wait_set)
338
332
{
333
+
334
+
339
335
bool is_feedback_ready{false };
340
336
bool is_status_ready{false };
341
337
bool is_goal_response_ready{false };
@@ -358,9 +354,7 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
358
354
}
359
355
}
360
356
361
- size_t cnt = 0 ;
362
357
if (is_feedback_ready) {
363
- cnt++;
364
358
std::shared_ptr<void > feedback_message;
365
359
{
366
360
std::lock_guard<std::recursive_mutex> lock (pimpl_->action_client_mutex_ );
@@ -374,10 +368,11 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
374
368
std::make_shared<ClientBaseData>(
375
369
ClientBaseData::FeedbackReadyData (
376
370
ret, feedback_message)));
371
+
372
+ return true ;
377
373
}
378
374
379
375
if (is_status_ready) {
380
- cnt++;
381
376
std::shared_ptr<void > status_message;
382
377
{
383
378
std::lock_guard<std::recursive_mutex> lock (pimpl_->action_client_mutex_ );
@@ -391,10 +386,11 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
391
386
std::make_shared<ClientBaseData>(
392
387
ClientBaseData::StatusReadyData (
393
388
ret, status_message)));
389
+
390
+ return true ;
394
391
}
395
392
396
393
if (is_goal_response_ready) {
397
- cnt++;
398
394
rmw_request_id_t response_header;
399
395
std::shared_ptr<void > goal_response;
400
396
{
@@ -404,15 +400,17 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
404
400
ret = rcl_action_take_goal_response (
405
401
pimpl_->client_handle .get (), &response_header, goal_response.get ());
406
402
}
403
+
407
404
std::lock_guard<std::recursive_mutex> lock (pimpl_->data_queue_mutex_ );
408
405
pimpl_->data_queue_ .push_back (
409
406
std::make_shared<ClientBaseData>(
410
407
ClientBaseData::GoalResponseData (
411
408
ret, response_header, goal_response)));
409
+
410
+ return true ;
412
411
}
413
412
414
413
if (is_result_response_ready) {
415
- cnt++;
416
414
rmw_request_id_t response_header;
417
415
std::shared_ptr<void > result_response;
418
416
{
@@ -421,15 +419,17 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
421
419
ret = rcl_action_take_result_response (
422
420
pimpl_->client_handle .get (), &response_header, result_response.get ());
423
421
}
422
+
424
423
std::lock_guard<std::recursive_mutex> lock (pimpl_->data_queue_mutex_ );
425
424
pimpl_->data_queue_ .push_back (
426
425
std::make_shared<ClientBaseData>(
427
426
ClientBaseData::ResultResponseData (
428
427
ret, response_header, result_response)));
428
+
429
+ return true ;
429
430
}
430
431
431
432
if (is_cancel_response_ready) {
432
- cnt++;
433
433
rmw_request_id_t response_header;
434
434
std::shared_ptr<void > cancel_response;
435
435
{
@@ -444,21 +444,10 @@ ClientBase::is_ready(rcl_wait_set_t * wait_set)
444
444
std::make_shared<ClientBaseData>(
445
445
ClientBaseData::CancelResponseData (
446
446
ret, response_header, cancel_response)));
447
+ return true ;
447
448
}
448
449
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 ;
462
451
}
463
452
464
453
void
0 commit comments