[mpich] MPICH primary repository branch, master, updated. v3.1.3-33-g786b3e9
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via 786b3e98a54107e844d43cfc4b27f71baacba47e (commit) from aad52bcc7414ecf80a8242b5177d0b33f3067b5e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/786b3e98a54107e844d43cfc4b27f71baa... commit 786b3e98a54107e844d43cfc4b27f71baacba47e Author: Wesley Bland <[email protected]> Date: Mon Oct 20 14:13:44 2014 -0500 Copy tag checking proceedure to all MPIC funcs The previous commit only adjusted the tag checking proceedure for MPIC_Recv, but it should be the same for MPIC_Sendrecv and MPIC_Sendrecv_replace. Signed-off-by: Huiwei Lu <[email protected]> diff --git a/src/mpi/coll/helper_fns.c b/src/mpi/coll/helper_fns.c index 869d193..a8ab107 100644 --- a/src/mpi/coll/helper_fns.c +++ b/src/mpi/coll/helper_fns.c @@ -326,19 +326,17 @@ int MPIC_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, if (mpi_errno) MPIU_ERR_POP(mpi_errno); if (request_ptr) { mpi_errno = MPIC_Wait(request_ptr); - if (mpi_errno == MPI_SUCCESS) { - *status = request_ptr->status; - } else { + if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno); - } + + *status = request_ptr->status; + mpi_errno = status->MPI_ERROR; MPID_Request_release(request_ptr); } if (source != MPI_PROC_NULL) { - int ec; - MPI_Error_class(status->MPI_ERROR, &ec); - if (MPIX_ERR_REVOKED != MPIR_ERR_GET_CLASS(status->MPI_ERROR) && - MPIX_ERR_PROC_FAILED != MPIR_ERR_GET_CLASS(status->MPI_ERROR) && + if (MPIX_ERR_REVOKED == MPIR_ERR_GET_CLASS(status->MPI_ERROR) || + MPIX_ERR_PROC_FAILED == MPIR_ERR_GET_CLASS(status->MPI_ERROR) || MPIR_TAG_CHECK_ERROR_BIT(status->MPI_TAG)) { *errflag = TRUE; MPIR_TAG_CLEAR_ERROR_BIT(status->MPI_TAG); @@ -455,10 +453,12 @@ int MPIC_Sendrecv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, MPID_Request_release(recv_req_ptr); if (source != MPI_PROC_NULL) { - if (MPIR_TAG_CHECK_ERROR_BIT(status->MPI_TAG)) { + if (MPIX_ERR_REVOKED == MPIR_ERR_GET_CLASS(status->MPI_ERROR) || + MPIX_ERR_PROC_FAILED == MPIR_ERR_GET_CLASS(status->MPI_ERROR) || + MPIR_TAG_CHECK_ERROR_BIT(status->MPI_TAG)) { *errflag = TRUE; MPIR_TAG_CLEAR_ERROR_BIT(status->MPI_TAG); - } else if (MPIX_ERR_REVOKED != MPIR_ERR_GET_CLASS(status->MPI_ERROR)) { + } else if (MPI_SUCCESS == MPIR_ERR_GET_CLASS(status->MPI_ERROR)) { MPIU_Assert(status->MPI_TAG == recvtag); } } @@ -567,12 +567,14 @@ int MPIC_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, MPID_Request_release(rreq); if (mpi_errno) MPIU_ERR_POP(mpi_errno); - + if (source != MPI_PROC_NULL) { - if (MPIR_TAG_CHECK_ERROR_BIT(status->MPI_TAG)) { + if (MPIX_ERR_REVOKED == MPIR_ERR_GET_CLASS(status->MPI_ERROR) || + MPIX_ERR_PROC_FAILED == MPIR_ERR_GET_CLASS(status->MPI_ERROR) || + MPIR_TAG_CHECK_ERROR_BIT(status->MPI_TAG)) { *errflag = TRUE; MPIR_TAG_CLEAR_ERROR_BIT(status->MPI_TAG); - } else if (MPIX_ERR_REVOKED != MPIR_ERR_GET_CLASS(status->MPI_ERROR)) { + } else if (MPI_SUCCESS == MPIR_ERR_GET_CLASS(status->MPI_ERROR)) { MPIU_Assert(status->MPI_TAG == recvtag); } } ----------------------------------------------------------------------- Summary of changes: src/mpi/coll/helper_fns.c | 28 +++++++++++++++------------- 1 files changed, 15 insertions(+), 13 deletions(-) hooks/post-receive -- MPICH primary repository
participants (1)
-
noreply@mpich.org