diff --git a/rmw_microxrcedds_c/src/rmw_init.c b/rmw_microxrcedds_c/src/rmw_init.c index 96089b4b..9221eb90 100644 --- a/rmw_microxrcedds_c/src/rmw_init.c +++ b/rmw_microxrcedds_c/src/rmw_init.c @@ -55,7 +55,7 @@ rmw_init_options_init( init_options->implementation_identifier = eprosima_microxrcedds_identifier; init_options->allocator = allocator; init_options->enclave = NULL; - init_options->domain_id = 0; + init_options->domain_id = RMW_DEFAULT_DOMAIN_ID; init_options->security_options = rmw_get_default_security_options(); init_options->localhost_only = RMW_LOCALHOST_ONLY_DEFAULT; @@ -207,7 +207,8 @@ rmw_init( RMW_RET_INCORRECT_RMW_IMPLEMENTATION); context->instance_id = options->instance_id; context->implementation_identifier = eprosima_microxrcedds_identifier; - context->actual_domain_id = options->domain_id; + context->actual_domain_id = + (RMW_DEFAULT_DOMAIN_ID == options->domain_id) ? 0u : options->domain_id; #ifdef UCLIENT_PROFILE_MULTITHREAD if (!rmw_uxrce_wait_mutex_initialized) { @@ -368,6 +369,9 @@ rmw_context_fini( { rmw_ret_t ret = RMW_RET_OK; + // Safety net against leaks if the app shuts down without destroying its nodes + // Nodes destroyed here make a later rcl_node_fini() return RMW_RET_ERROR, this + // is normally triggered by rclc_support_fini() -> rcl_shutdown() -> rmw_shutdown() rmw_uxrce_mempool_item_t * item = node_memory.allocateditems; while (item != NULL) {