@@ -212,11 +212,14 @@ rmw_create_subscription(
212212
213213 uint16_t requests [] = {subscriber_req , datareader_req };
214214 uint8_t status [sizeof (requests ) / 2 ];
215- if (!uxr_run_session_until_all_status (
216- & custom_node -> context -> session , 1000 , requests ,
217- status , sizeof (status )))
215+
216+ if (UXR_BEST_EFFORT_STREAM == custom_node -> context -> entity_creation_output -> type )
217+ {
218+ uxr_flash_output_streams (& custom_node -> context -> session );
219+ }
220+ else if (!uxr_run_session_until_all_status (& custom_node -> context -> session , 1000 , requests , status ,sizeof (status )))
218221 {
219- RMW_SET_ERROR_MSG ("Issues creating Micro XRCE-DDS entities" );
222+ RMW_SET_ERROR_MSG ("Issues creating Subscriber Micro XRCE-DDS entities" );
220223 put_memory (& subscription_memory , & custom_subscription -> mem );
221224 goto fail ;
222225 }
@@ -311,11 +314,17 @@ rmw_destroy_subscription(rmw_node_t * node, rmw_subscription_t * subscription)
311314
312315 uint16_t requests [] = {delete_datareader , delete_subscriber };
313316 uint8_t status [sizeof (requests ) / 2 ];
314- if (!uxr_run_session_until_all_status (
317+
318+ if (UXR_BEST_EFFORT_STREAM == custom_subscription -> owner_node -> context -> entity_creation_output -> type )
319+ {
320+ uxr_flash_output_streams (& custom_subscription -> owner_node -> context -> session );
321+ rmw_uxrce_fini_subscription_memory (subscription );
322+ }
323+ else if (!uxr_run_session_until_all_status (
315324 & custom_subscription -> owner_node -> context -> session , 1000 , requests , status ,
316325 sizeof (status )))
317326 {
318- RMW_SET_ERROR_MSG ("unable to remove publisher from the server" );
327+ RMW_SET_ERROR_MSG ("Unable to remove subscriber from the server" );
319328 result_ret = RMW_RET_ERROR ;
320329 } else {
321330 rmw_uxrce_fini_subscription_memory (subscription );
0 commit comments