Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' into mc
[simgrid.git] / src / smpi / smpi_pmpi.c
index 63e69db..573575b 100644 (file)
@@ -923,7 +923,7 @@ int PMPI_Start(MPI_Request * request)
 
   smpi_bench_end();
   if (request == NULL || *request == MPI_REQUEST_NULL) {
-    retval = MPI_ERR_ARG;
+    retval = MPI_ERR_REQUEST;
   } else {
     smpi_mpi_start(*request);
     retval = MPI_SUCCESS;
@@ -934,14 +934,21 @@ int PMPI_Start(MPI_Request * request)
 
 int PMPI_Startall(int count, MPI_Request * requests)
 {
-  int retval = 0;
-
+  int retval;
+  int i = 0;
   smpi_bench_end();
   if (requests == NULL) {
     retval = MPI_ERR_ARG;
   } else {
-    smpi_mpi_startall(count, requests);
     retval = MPI_SUCCESS;
+    for (i = 0 ;  i < count ; i++) {
+      if(requests[i] == MPI_REQUEST_NULL) {
+        retval = MPI_ERR_REQUEST;
+      }
+    }
+    if(retval != MPI_ERR_REQUEST) {
+      smpi_mpi_startall(count, requests);
+    }
   }
   smpi_bench_begin();
   return retval;