From 1e3e32ce375ecc26aa231c580a7fe65fd6b79d23 Mon Sep 17 00:00:00 2001 From: Tomoya Fujita Date: Wed, 25 Sep 2024 16:32:23 -0700 Subject: [PATCH] Do not return error when rcl_send_response timeout. Signed-off-by: Tomoya Fujita --- rclc/src/rclc/executor.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rclc/src/rclc/executor.c b/rclc/src/rclc/executor.c index 79ddcd31..e9adebf3 100644 --- a/rclc/src/rclc/executor.c +++ b/rclc/src/rclc/executor.c @@ -1473,6 +1473,12 @@ _rclc_execute(rclc_executor_handle_t * handle) } // handle rcl-side services rc = rcl_send_response(handle->service, &handle->req_id, handle->data_response_msg); + if (rc == RCL_RET_TIMEOUT) { + // because of racy condition between service client and server endpoint creation, + // server cannot find the concerned client just yet. + PRINT_RCLC_WARN(rclc_execute, rcl_send_response); + rc = RCL_RET_OK; + } if (rc != RCL_RET_OK) { PRINT_RCLC_ERROR(rclc_execute, rcl_send_response); return rc;