X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1ba7f6b1ee9d622c2922456975c080242d052eae..a468c44a3ff64c8252a45ba0c4d8fea2c147491b:/src/smpi/smpi_base.c?ds=sidebyside diff --git a/src/smpi/smpi_base.c b/src/smpi/smpi_base.c index c1f8d3a687..d7d32fcdd3 100644 --- a/src/smpi/smpi_base.c +++ b/src/smpi/smpi_base.c @@ -601,6 +601,7 @@ int smpi_mpi_test(MPI_Request * request, MPI_Status * status) { flag = simcall_comm_test((*request)->action); if(flag) { finish_wait(request, status); + request=MPI_REQUEST_NULL; }else{ smpi_empty_status(status); } @@ -806,6 +807,7 @@ int smpi_mpi_waitall(int count, MPI_Request requests[], index = smpi_mpi_waitany(count, requests, pstat); if (index == MPI_UNDEFINED) break; + requests[index]=MPI_REQUEST_NULL; } if (status != MPI_STATUSES_IGNORE) { status[index] = *pstat; @@ -834,6 +836,7 @@ int smpi_mpi_waitsome(int incount, MPI_Request requests[], int *indices, if(status != MPI_STATUSES_IGNORE) { status[index] = *pstat; } + requests[index]=MPI_REQUEST_NULL; }else{ return MPI_UNDEFINED; } @@ -858,6 +861,8 @@ int smpi_mpi_testsome(int incount, MPI_Request requests[], int *indices, if(status != MPI_STATUSES_IGNORE) { status[i] = *pstat; } + requests[i]=MPI_REQUEST_NULL; + } }else{ count_dead++;