static int rte_finalize(void) { int ret; /* if I am a daemon, finalize using the default procedure */ if (ORTE_PROC_IS_DAEMON) { if (ORTE_SUCCESS != (ret = orte_ess_base_orted_finalize())) { ORTE_ERROR_LOG(ret); return ret; } } else if (ORTE_PROC_IS_TOOL) { /* otherwise, if I am a tool proc, use that procedure */ if (ORTE_SUCCESS != (ret = orte_ess_base_tool_finalize())) { ORTE_ERROR_LOG(ret); } return ret; } else { /* otherwise, I must be an application process * use the default procedure to finish */ if (ORTE_SUCCESS != (ret = orte_ess_base_app_finalize())) { ORTE_ERROR_LOG(ret); return ret; } } return ORTE_SUCCESS; }
static int rte_finalize(void) { int ret; /* if I am a daemon, finalize using the default procedure */ if (ORTE_PROC_IS_DAEMON) { /* don't need to do the barrier */ orte_orted_exit_with_barrier = false; if (ORTE_SUCCESS != (ret = orte_ess_base_orted_finalize())) { ORTE_ERROR_LOG(ret); } } else if (ORTE_PROC_IS_TOOL) { /* otherwise, if I am a tool proc, use that procedure */ if (ORTE_SUCCESS != (ret = orte_ess_base_tool_finalize())) { ORTE_ERROR_LOG(ret); } /* as a tool, I didn't create a nidmap - so just return now */ return ret; } else { /* otherwise, I must be an application process * use the default procedure to finish */ if (ORTE_SUCCESS != (ret = orte_ess_base_app_finalize())) { ORTE_ERROR_LOG(ret); } } /* deconstruct my nidmap and jobmap arrays */ orte_util_nidmap_finalize(); return ret; }
static int rte_finalize(void) { int ret = ORTE_SUCCESS; /* if I am a daemon, finalize using the default procedure */ if (ORTE_PROC_IS_DAEMON) { if (ORTE_SUCCESS != (ret = orte_ess_base_orted_finalize())) { ORTE_ERROR_LOG(ret); goto fn_exit; } /* notify alps that we're done */ if (ORTE_SUCCESS != (ret = orte_ess_alps_sync_complete())) { ORTE_ERROR_LOG(ret); } } else if (ORTE_PROC_IS_TOOL) { /* otherwise, if I am a tool proc, use that procedure */ if (ORTE_SUCCESS != (ret = orte_ess_base_tool_finalize())) { ORTE_ERROR_LOG(ret); } } fn_exit: return ret; }
static int rte_finalize(void) { int ret; orte_nid_t **nids; orte_jmap_t **jmaps; int32_t i; /* if I am a daemon, finalize using the default procedure */ if (orte_process_info.daemon) { if (ORTE_SUCCESS != (ret = orte_ess_base_orted_finalize())) { ORTE_ERROR_LOG(ret); } } else if (orte_process_info.tool) { /* otherwise, if I am a tool proc, use that procedure */ if (ORTE_SUCCESS != (ret = orte_ess_base_tool_finalize())) { ORTE_ERROR_LOG(ret); } } else { /* otherwise, I must be an application process - deconstruct * my nidmap and jobmap arrays */ nids = (orte_nid_t**)nidmap.addr; for (i=0; i < nidmap.size && NULL != nids[i]; i++) { OBJ_RELEASE(nids[i]); } OBJ_DESTRUCT(&nidmap); jmaps = (orte_jmap_t**)jobmap.addr; for (i=0; i < jobmap.size && NULL != jmaps[i]; i++) { OBJ_RELEASE(jmaps[i]); } OBJ_DESTRUCT(&jobmap); /* use the default procedure to finish */ if (ORTE_SUCCESS != (ret = orte_ess_base_app_finalize())) { ORTE_ERROR_LOG(ret); } } return ret; }