98e98ce2c5
1 otherwise. It was doing the opposite, so this patch fixes the return values. All uses (all in ORTE) used the actual return values, not the documented values, so fix them as well. This commit was SVN r25257.
91 строка
2.3 KiB
C
91 строка
2.3 KiB
C
/*
|
|
* Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
|
* University Research and Technology
|
|
* Corporation. All rights reserved.
|
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
|
* of Tennessee Research Foundation. All rights
|
|
* reserved.
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
* University of Stuttgart. All rights reserved.
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
* All rights reserved.
|
|
* Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
/** @file **/
|
|
|
|
#include "orte_config.h"
|
|
#include "orte/constants.h"
|
|
|
|
#include "opal/runtime/opal.h"
|
|
#include "opal/util/output.h"
|
|
|
|
#include "orte/mca/ess/ess.h"
|
|
#include "orte/mca/ess/base/base.h"
|
|
#include "orte/runtime/orte_globals.h"
|
|
#include "orte/runtime/runtime.h"
|
|
#include "orte/runtime/orte_locks.h"
|
|
#include "orte/util/show_help.h"
|
|
|
|
/**
|
|
* Leave ORTE.
|
|
*
|
|
* @retval ORTE_SUCCESS Upon success.
|
|
* @retval ORTE_ERROR Upon failure.
|
|
*
|
|
* This function performs
|
|
*/
|
|
int orte_finalize(void)
|
|
{
|
|
if (!orte_initialized) {
|
|
return ORTE_SUCCESS;
|
|
}
|
|
|
|
/* protect against multiple calls */
|
|
if (opal_atomic_trylock(&orte_finalize_lock)) {
|
|
return ORTE_SUCCESS;
|
|
}
|
|
|
|
/* set the flag indicating we are finalizing */
|
|
orte_finalizing = true;
|
|
|
|
/* close the orte_show_help system */
|
|
orte_show_help_finalize();
|
|
|
|
/* call the finalize function for this environment */
|
|
orte_ess.finalize();
|
|
|
|
/* close the ess itself */
|
|
orte_ess_base_close();
|
|
|
|
/* cleanup the process info */
|
|
orte_proc_info_finalize();
|
|
|
|
#if !ORTE_DISABLE_FULL_SUPPORT
|
|
/* Free some MCA param strings */
|
|
if (NULL != orte_launch_agent) {
|
|
free(orte_launch_agent);
|
|
}
|
|
if (NULL != orte_rsh_agent) {
|
|
free(orte_rsh_agent);
|
|
}
|
|
if( NULL != orte_default_hostfile ) {
|
|
free(orte_default_hostfile);
|
|
}
|
|
#endif
|
|
|
|
/* Close the general debug stream */
|
|
opal_output_close(orte_debug_output);
|
|
|
|
/* finalize the opal utilities */
|
|
opal_finalize();
|
|
|
|
orte_initialized = false;
|
|
return ORTE_SUCCESS;
|
|
}
|