@@ -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 }
@@ -314,11 +317,17 @@ rmw_destroy_subscription(rmw_node_t * node, rmw_subscription_t * subscription)
314317
315318 uint16_t requests [] = {delete_datareader , delete_subscriber };
316319 uint8_t status [sizeof (requests ) / 2 ];
317- if (!uxr_run_session_until_all_status (
320+
321+ if (UXR_BEST_EFFORT_STREAM == custom_subscription -> owner_node -> context -> entity_creation_output -> type )
322+ {
323+ uxr_flash_output_streams (& custom_subscription -> owner_node -> context -> session );
324+ rmw_uxrce_fini_subscription_memory (subscription );
325+ }
326+ else if (!uxr_run_session_until_all_status (
318327 & custom_subscription -> owner_node -> context -> session , 1000 , requests , status ,
319328 sizeof (status )))
320329 {
321- RMW_SET_ERROR_MSG ("unable to remove publisher from the server" );
330+ RMW_SET_ERROR_MSG ("Unable to remove subscriber from the server" );
322331 result_ret = RMW_RET_ERROR ;
323332 } else {
324333 rmw_uxrce_fini_subscription_memory (subscription );
0 commit comments