From: degomme Date: Wed, 7 Mar 2018 12:49:02 +0000 (+0100) Subject: set status even when sendrecv is skipped (same process) X-Git-Tag: v3.19~137 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/9dfe23fdf9abd1568ce357de2a0573726948b2c2 set status even when sendrecv is skipped (same process) --- diff --git a/src/smpi/mpi/smpi_request.cpp b/src/smpi/mpi/smpi_request.cpp index 2aa173b01a..c408fab9e8 100644 --- a/src/smpi/mpi/smpi_request.cpp +++ b/src/smpi/mpi/smpi_request.cpp @@ -309,6 +309,12 @@ void Request::sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype,int d unsigned int myid = simgrid::s4u::Actor::self()->getPid(); if ((comm->group()->actor(dst)->getPid() == myid) && (comm->group()->actor(src)->getPid() == myid)){ Datatype::copy(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype); + if(status !=MPI_STATUS_IGNORE){ + status->MPI_SOURCE = comm->group()->rank(src); + status->MPI_TAG = recvtag; + status->MPI_ERROR = MPI_SUCCESS; + status->count = sendcount*sendtype->size(); + } return; } requests[0] = isend_init(sendbuf, sendcount, sendtype, dst, sendtag, comm);