From aec830b8423c13c5c31e3db71361a449bfacd8ed Mon Sep 17 00:00:00 2001 From: degomme Date: Tue, 13 Mar 2018 18:30:10 +0100 Subject: [PATCH] even better handling ... --- src/smpi/bindings/smpi_pmpi_request.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/smpi/bindings/smpi_pmpi_request.cpp b/src/smpi/bindings/smpi_pmpi_request.cpp index 88a59c8e16..82d2642913 100644 --- a/src/smpi/bindings/smpi_pmpi_request.cpp +++ b/src/smpi/bindings/smpi_pmpi_request.cpp @@ -396,20 +396,17 @@ int PMPI_Sendrecv(void* sendbuf, int sendcount, MPI_Datatype sendtype, int dst, retval = MPI_ERR_COMM; } else if (not sendtype->is_valid() || not recvtype->is_valid()) { retval = MPI_ERR_TYPE; - } else if (src == MPI_PROC_NULL && dst == MPI_PROC_NULL) { - if(status!=MPI_STATUS_IGNORE){ - simgrid::smpi::Status::empty(status); - status->MPI_SOURCE = MPI_PROC_NULL; - } - retval = MPI_SUCCESS; - }else if (src == MPI_PROC_NULL){ + } else if (src == MPI_PROC_NULL) { if(status!=MPI_STATUS_IGNORE){ simgrid::smpi::Status::empty(status); status->MPI_SOURCE = MPI_PROC_NULL; } - return PMPI_Send(sendbuf, sendcount, sendtype, dst, sendtag, comm); + if(dst != MPI_PROC_NULL) + simgrid::smpi::Request::send(sendbuf, sendcount, sendtype, dst, sendtag, comm); + retval = MPI_SUCCESS; }else if (dst == MPI_PROC_NULL){ - return PMPI_Recv(recvbuf, recvcount, recvtype, src, recvtag, comm, status); + simgrid::smpi::Request::recv(recvbuf, recvcount, recvtype, src, recvtag, comm, status); + retval = MPI_SUCCESS; }else if (dst >= comm->group()->size() || dst <0 || (src!=MPI_ANY_SOURCE && (src >= comm->group()->size() || src <0))){ retval = MPI_ERR_RANK; -- 2.20.1