int orte_routed_base_select(void) { int ret, exit_status = OPAL_SUCCESS; orte_routed_component_t *best_component = NULL; orte_routed_module_t *best_module = NULL; /* * Select the best component */ if( OPAL_SUCCESS != mca_base_select("routed", orte_routed_base_output, &orte_routed_base_components, (mca_base_module_t **) &best_module, (mca_base_component_t **) &best_component) ) { /* This will only happen if no component was selected */ exit_status = ORTE_ERR_NOT_FOUND; goto cleanup; } /* Save the winner */ orte_routed = *best_module; active_component = best_component; /* initialize the selected component */ opal_output_verbose(10, orte_routed_base_output, "orte_routed_base_select: initializing selected component %s", best_component->base_version.mca_component_name); if (ORTE_SUCCESS != (ret = orte_routed.initialize()) ) { exit_status = ret; goto cleanup; } cleanup: return exit_status; }
int orte_routed_base_close(void) { /* finalize the selected component */ if (NULL != orte_routed.finalize) { orte_routed.finalize(); } /* shutdown any remaining opened components */ if (component_open_called) { mca_base_components_close(orte_routed_base_output, &orte_routed_base_components, NULL); } OBJ_DESTRUCT(&orte_routed_base_components); return ORTE_SUCCESS; }
static int orte_routed_base_close(void) { int i; orte_routed_jobfam_t *jfam; /* finalize the selected component */ if (NULL != orte_routed.finalize) { orte_routed.finalize(); } for (i=0; i < orte_routed_jobfams.size; i++) { if (NULL != (jfam = (orte_routed_jobfam_t*)opal_pointer_array_get_item(&orte_routed_jobfams, i))) { OBJ_RELEASE(jfam); } } OBJ_DESTRUCT(&orte_routed_jobfams); return mca_base_framework_components_close(&orte_routed_base_framework, NULL); }