Skip to content

Commit a17896c

Browse files
authored
Add cancel data to destroy subscription (#224)
* Add cancel data to destroy subscription * Uncrustify * Add cancel data to service/client * Fix * Fix client
1 parent 801c8fc commit a17896c

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

rmw_microxrcedds_c/src/rmw_client.c

+10
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,16 @@ rmw_destroy_client(
210210
} else {
211211
rmw_uxrce_node_t * custom_node = (rmw_uxrce_node_t *)node->data;
212212
rmw_uxrce_client_t * custom_client = (rmw_uxrce_client_t *)client->data;
213+
214+
uint16_t client_req = uxr_buffer_cancel_data(
215+
&custom_node->context->session,
216+
*custom_node->context->destroy_stream,
217+
custom_client->client_id);
218+
219+
run_xrce_session(
220+
custom_node->context, custom_node->context->destroy_stream, client_req,
221+
custom_node->context->destroy_timeout);
222+
213223
uint16_t delete_client =
214224
uxr_buffer_delete_entity(
215225
&custom_node->context->session,

rmw_microxrcedds_c/src/rmw_service.c

+10
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,16 @@ rmw_destroy_service(
209209
} else {
210210
rmw_uxrce_node_t * custom_node = (rmw_uxrce_node_t *)node->data;
211211
rmw_uxrce_service_t * custom_service = (rmw_uxrce_service_t *)service->data;
212+
213+
uint16_t service_req = uxr_buffer_cancel_data(
214+
&custom_node->context->session,
215+
*custom_node->context->destroy_stream,
216+
custom_service->service_id);
217+
218+
run_xrce_session(
219+
custom_node->context, custom_node->context->destroy_stream, service_req,
220+
custom_node->context->destroy_timeout);
221+
212222
uint16_t delete_service =
213223
uxr_buffer_delete_entity(
214224
&custom_node->context->session,

rmw_microxrcedds_c/src/rmw_subscription.c

+9
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,15 @@ rmw_destroy_subscription(
312312
rmw_uxrce_subscription_t * custom_subscription = (rmw_uxrce_subscription_t *)subscription->data;
313313
rmw_uxrce_node_t * custom_node = custom_subscription->owner_node;
314314

315+
uint16_t datareader_req = uxr_buffer_cancel_data(
316+
&custom_node->context->session,
317+
*custom_node->context->destroy_stream,
318+
custom_subscription->datareader_id);
319+
320+
run_xrce_session(
321+
custom_node->context, custom_node->context->destroy_stream, datareader_req,
322+
custom_node->context->destroy_timeout);
323+
315324
destroy_topic(custom_subscription->topic);
316325

317326
uint16_t delete_datareader =

0 commit comments

Comments
 (0)