/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
/*
* (C) 2006 by Argonne National Laboratory.
* See COPYRIGHT in top-level directory.
*/
#include "tcp_impl.h"
#undef FUNCNAME
#define FUNCNAME MPID_nem_tcp_finalize
#undef FCNAME
#define FCNAME MPL_QUOTE(FUNCNAME)
int MPID_nem_tcp_finalize(void)
{
int mpi_errno = MPI_SUCCESS;
int ret;
MPIDI_STATE_DECL(MPID_STATE_MPID_NEM_TCP_FINALIZE);
MPIDI_FUNC_ENTER(MPID_STATE_MPID_NEM_TCP_FINALIZE);
mpi_errno = MPID_nem_tcp_send_finalize();
if (mpi_errno) MPIR_ERR_POP(mpi_errno);
mpi_errno = MPID_nem_tcp_sm_finalize();
if (mpi_errno) MPIR_ERR_POP(mpi_errno);
if (MPID_nem_tcp_g_lstn_sc.fd)
{
CHECK_EINTR (ret, close(MPID_nem_tcp_g_lstn_sc.fd));
MPIR_ERR_CHKANDJUMP2 (ret == -1, mpi_errno, MPI_ERR_OTHER, "**closesocket", "**closesocket %s %d", errno, MPIU_Strerror (errno));
}
fn_exit:
MPIDI_FUNC_EXIT(MPID_STATE_MPID_NEM_TCP_FINALIZE);
return mpi_errno;
fn_fail:
goto fn_exit;
}