X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b87fc0829538ec066fd077e6c30ee6270b8abd78..5f1dc33c9f76ee99973ba93f034f031451398ebe:/src/smpi/bindings/smpi_pmpi_request.cpp diff --git a/src/smpi/bindings/smpi_pmpi_request.cpp b/src/smpi/bindings/smpi_pmpi_request.cpp index 926b55c349..39683f8459 100644 --- a/src/smpi/bindings/smpi_pmpi_request.cpp +++ b/src/smpi/bindings/smpi_pmpi_request.cpp @@ -613,8 +613,7 @@ int PMPI_Wait(MPI_Request * request, MPI_Status * status) } else if (*request == MPI_REQUEST_NULL) { retval = MPI_SUCCESS; } else { - - int rank = (request!=nullptr && (*request)->comm() != MPI_COMM_NULL) ? smpi_process()->index() : -1; + int rank = (*request)->comm() != MPI_COMM_NULL ? smpi_process()->index() : -1; int src_traced = (*request)->src(); int dst_traced = (*request)->dst(); @@ -646,6 +645,9 @@ int PMPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status * sta if (index == nullptr) return MPI_ERR_ARG; + if (count <= 0) + return MPI_SUCCESS; + smpi_bench_end(); //save requests information for tracing typedef struct { @@ -655,10 +657,8 @@ int PMPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status * sta int tag; MPI_Comm comm; } savedvalstype; - savedvalstype* savedvals=nullptr; - if(count>0){ - savedvals = xbt_new0(savedvalstype, count); - } + savedvalstype* savedvals = xbt_new0(savedvalstype, count); + for (int i = 0; i < count; i++) { MPI_Request req = requests[i]; //already received requests are no longer valid if (req) {