From ece04558b837066e1020da44442f97782e3cb71c Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Mon, 18 Feb 2013 21:31:42 +0100 Subject: [PATCH] Set status in any case. --- src/smpi/smpi_base.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/smpi/smpi_base.c b/src/smpi/smpi_base.c index 823a5eb253..84e314ce45 100644 --- a/src/smpi/smpi_base.c +++ b/src/smpi/smpi_base.c @@ -531,13 +531,14 @@ int smpi_mpi_get_count(MPI_Status * status, MPI_Datatype datatype) static void finish_wait(MPI_Request * request, MPI_Status * status) { MPI_Request req = *request; + if(status != MPI_STATUS_IGNORE) + smpi_empty_status(status); + if(!(req->detached && req->flags & SEND)){ if(status != MPI_STATUS_IGNORE) { status->MPI_SOURCE = req->src == MPI_ANY_SOURCE ? req->real_src : req->src; status->MPI_TAG = req->tag == MPI_ANY_TAG ? req->real_tag : req->tag; - if(req->truncated) - status->MPI_ERROR = MPI_ERR_TRUNCATE; - else status->MPI_ERROR = MPI_SUCCESS ; + status->MPI_ERROR = req->truncated ? MPI_ERR_TRUNCATE : MPI_SUCCESS; // this handles the case were size in receive differs from size in send // FIXME: really this should just contain the count of receive-type blocks, // right? -- 2.20.1