File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -215,11 +215,9 @@ rmw_destroy_client(
215215 custom_client -> client_id );
216216
217217 if (!run_xrce_session (custom_node -> context , delete_client )) {
218- result_ret = RMW_RET_ERROR ;
219- } else {
220- rmw_uxrce_fini_client_memory (client );
221- result_ret = RMW_RET_OK ;
218+ result_ret = RMW_RET_TIMEOUT ;
222219 }
220+ rmw_uxrce_fini_client_memory (client );
223221 }
224222
225223 return result_ret ;
Original file line number Diff line number Diff line change @@ -99,19 +99,22 @@ rmw_ret_t destroy_topic(
9999 rmw_uxrce_topic_t * topic )
100100{
101101 rmw_ret_t result_ret = RMW_RET_OK ;
102- rmw_uxrce_node_t * custom_node = topic -> owner_node ;
102+ if (topic -> owner_node != NULL ) {
103+ rmw_uxrce_node_t * custom_node = topic -> owner_node ;
103104
104- uint16_t delete_topic = uxr_buffer_delete_entity (
105- & custom_node -> context -> session ,
106- * custom_node -> context -> creation_destroy_stream ,
107- topic -> topic_id );
105+ uint16_t delete_topic = uxr_buffer_delete_entity (
106+ & custom_node -> context -> session ,
107+ * custom_node -> context -> creation_destroy_stream ,
108+ topic -> topic_id );
108109
109- if (!run_xrce_session (custom_node -> context , delete_topic )) {
110- result_ret = RMW_RET_ERROR ;
111- } else {
110+ if (!run_xrce_session (custom_node -> context , delete_topic )) {
111+ result_ret = RMW_RET_TIMEOUT ;
112+ }
112113 rmw_uxrce_fini_topic_memory (topic );
113- result_ret = RMW_RET_OK ;
114+ } else {
115+ result_ret = RMW_RET_ERROR ;
114116 }
117+
115118 return result_ret ;
116119}
117120
Original file line number Diff line number Diff line change @@ -202,7 +202,7 @@ rmw_ret_t rmw_destroy_node(
202202 custom_node -> participant_id );
203203
204204 if (!run_xrce_session (custom_node -> context , delete_participant )) {
205- ret = RMW_RET_ERROR ;
205+ ret = RMW_RET_TIMEOUT ;
206206 }
207207
208208 rmw_uxrce_fini_node_memory (node );
Original file line number Diff line number Diff line change @@ -369,7 +369,7 @@ rmw_destroy_publisher(
369369 bool ret = run_xrce_session (custom_node -> context , delete_writer );
370370 ret &= run_xrce_session (custom_node -> context , delete_publisher );
371371 if (!ret ) {
372- result_ret = RMW_RET_ERROR ;
372+ result_ret = RMW_RET_TIMEOUT ;
373373 }
374374
375375 rmw_uxrce_fini_publisher_memory (publisher );
Original file line number Diff line number Diff line change @@ -215,7 +215,7 @@ rmw_destroy_service(
215215 custom_service -> service_id );
216216
217217 if (!run_xrce_session (custom_node -> context , delete_service )) {
218- result_ret = RMW_RET_ERROR ;
218+ result_ret = RMW_RET_TIMEOUT ;
219219 }
220220 rmw_uxrce_fini_service_memory (service );
221221 }
Original file line number Diff line number Diff line change @@ -343,8 +343,7 @@ rmw_destroy_subscription(
343343 bool ret = run_xrce_session (custom_node -> context , delete_datareader );
344344 ret &= run_xrce_session (custom_node -> context , delete_subscriber );
345345 if (!ret ) {
346- RMW_SET_ERROR_MSG ("unable to remove publisher from the server" );
347- result_ret = RMW_RET_ERROR ;
346+ result_ret = RMW_RET_TIMEOUT ;
348347 }
349348 rmw_uxrce_fini_subscription_memory (subscription );
350349 }
Original file line number Diff line number Diff line change @@ -228,6 +228,7 @@ void rmw_uxrce_fini_topic_memory(
228228 rmw_uxrce_topic_t * topic )
229229{
230230 put_memory (& topics_memory , & topic -> mem );
231+ topic -> owner_node = NULL ;
231232}
232233
233234rmw_uxrce_mempool_item_t * rmw_uxrce_find_static_input_buffer_by_owner (
You can’t perform that action at this time.
0 commit comments