-: 0:Source:/home/MPI/testing/mpich2/mpich2/src/mpi/errhan/comm_get_errhandler.c
-: 0:Graph:comm_get_errhandler.gcno
-: 0:Data:comm_get_errhandler.gcda
-: 0:Runs:523
-: 0:Programs:144
-: 1:/* -*- Mode: C; c-basic-offset:4 ; -*- */
-: 2:/*
-: 3: *
-: 4: * (C) 2001 by Argonne National Laboratory.
-: 5: * See COPYRIGHT in top-level directory.
-: 6: */
-: 7:
-: 8:#include "mpiimpl.h"
-: 9:
-: 10:/* -- Begin Profiling Symbol Block for routine MPI_Comm_get_errhandler */
-: 11:#if defined(HAVE_PRAGMA_WEAK)
-: 12:#pragma weak MPI_Comm_get_errhandler = PMPI_Comm_get_errhandler
-: 13:#elif defined(HAVE_PRAGMA_HP_SEC_DEF)
-: 14:#pragma _HP_SECONDARY_DEF PMPI_Comm_get_errhandler MPI_Comm_get_errhandler
-: 15:#elif defined(HAVE_PRAGMA_CRI_DUP)
-: 16:#pragma _CRI duplicate MPI_Comm_get_errhandler as PMPI_Comm_get_errhandler
-: 17:#endif
-: 18:/* -- End Profiling Symbol Block */
-: 19:
-: 20:/* Define MPICH_MPI_FROM_PMPI if weak symbols are not supported to build
-: 21: the MPI routines */
-: 22:#ifndef MPICH_MPI_FROM_PMPI
-: 23:#undef MPI_Comm_get_errhandler
-: 24:#define MPI_Comm_get_errhandler PMPI_Comm_get_errhandler
-: 25:
-: 26:#endif
-: 27:
-: 28:#undef FUNCNAME
-: 29:#define FUNCNAME MPI_Comm_get_errhandler
-: 30:
-: 31:/*@
-: 32: MPI_Comm_get_errhandler - Get the error handler attached to a communicator
-: 33:
-: 34: Input Parameter:
-: 35:. comm - communicator (handle)
-: 36:
-: 37: Output Parameter:
-: 38:. errhandler - handler currently associated with communicator (handle)
-: 39:
-: 40:.N ThreadSafeNoUpdate
-: 41:
-: 42:.N Fortran
-: 43:
-: 44:.N Errors
-: 45:.N MPI_SUCCESS
-: 46:.N MPI_ERR_COMM
-: 47:@*/
-: 48:int MPI_Comm_get_errhandler(MPI_Comm comm, MPI_Errhandler *errhandler)
12: 49:{
|
-: 50:#ifdef HAVE_ERROR_CHECKING
-: 51: static const char FCNAME[] = "MPI_Comm_get_errhandler";
-: 52:#endif
|
12: 53: int mpi_errno = MPI_SUCCESS;
12: 54: MPID_Comm *comm_ptr = NULL;
12: 55: MPIU_THREADPRIV_DECL;
-: 56: MPID_MPI_STATE_DECL(MPID_STATE_MPI_COMM_GET_ERRHANDLER);
-: 57:
12: 58: MPIR_ERRTEST_INITIALIZED_ORDIE();
-: 59:
12: 60: MPIU_THREAD_CS_ENTER(ALLFUNC,);
-: 61: MPID_MPI_FUNC_ENTER(MPID_STATE_MPI_COMM_GET_ERRHANDLER);
-: 62:
-: 63: /* Validate parameters, especially handles needing to be converted */
|
-: 64:# ifdef HAVE_ERROR_CHECKING
-: 65: {
-: 66: MPID_BEGIN_ERROR_CHECKS;
-: 67: {
12: 68: MPIR_ERRTEST_COMM(comm, mpi_errno);
12: 69: if (mpi_errno != MPI_SUCCESS) goto fn_fail;
-: 70: }
-: 71: MPID_END_ERROR_CHECKS;
-: 72: }
-: 73:# endif
-: 74:
-: 75: /* Convert MPI object handles to object pointers */
|
12: 76: MPID_Comm_get_ptr( comm, comm_ptr );
-: 77:
-: 78: /* Validate parameters and objects (post conversion) */
|
-: 79:# ifdef HAVE_ERROR_CHECKING
-: 80: {
-: 81: MPID_BEGIN_ERROR_CHECKS;
-: 82: {
-: 83: /* Validate comm_ptr; if comm_ptr is not valid, it will be reset to null */
12: 84: MPID_Comm_valid_ptr( comm_ptr, mpi_errno );
12: 85: MPIR_ERRTEST_ARGNULL(errhandler,"errhandler",mpi_errno);
12: 86: if (mpi_errno) goto fn_fail;
-: 87: }
-: 88: MPID_END_ERROR_CHECKS;
-: 89: }
-: 90:# endif /* HAVE_ERROR_CHECKING */
-: 91:
-: 92: /* ... body of routine ... */
-: 93:
-: 94: /* Check for default error handler */
|
12: 95: if (!comm_ptr->errhandler) {
|
#####: 96: *errhandler = MPI_ERRORS_ARE_FATAL;
-: 97: }
-: 98: else {
|
12: 99: *errhandler = comm_ptr->errhandler->handle;
12: 100: MPIR_Errhandler_add_ref(comm_ptr->errhandler);
-: 101: }
-: 102:
-: 103: /* ... end of body of routine ... */
-: 104:
|
-: 105:#ifdef HAVE_ERROR_CHECKING
12: 106: fn_exit:
-: 107:#endif
-: 108: MPID_MPI_FUNC_EXIT(MPID_STATE_MPI_COMM_GET_ERRHANDLER);
|
12: 109: MPIU_THREAD_CS_EXIT(ALLFUNC,);
12: 110: return mpi_errno;
-: 111:
|
-: 112: /* --BEGIN ERROR HANDLING-- */
-: 113:# ifdef HAVE_ERROR_CHECKING
#####: 114: fn_fail:
-: 115: {
#####: 116: mpi_errno = MPIR_Err_create_code(
-: 117: mpi_errno, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER,
-: 118: "**mpi_comm_get_errhandler",
-: 119: "**mpi_comm_get_errhandler %C %p", comm, errhandler);
-: 120: }
#####: 121: mpi_errno = MPIR_Err_return_comm( comm_ptr, FCNAME, mpi_errno );
#####: 122: goto fn_exit;
-: 123:# endif
-: 124: /* --END ERROR HANDLING-- */
-: 125:}
-: 126:
|