Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of framagit.org:simgrid/simgrid
[simgrid.git] / src / smpi / colls / smpi_default_selector.cpp
index d3c2fcb..03c7d54 100644 (file)
@@ -43,13 +43,15 @@ int reduce_scatter__default(const void *sendbuf, void *recvbuf, const int *recvc
   for (int i = 0; i < size; i++) {
     if(recvcounts[i]!=recvcounts[0]){
       regular=0;
-      continue;
+      break;
     }
     displs[i] = count;
     count += recvcounts[i];
   }
-  if(not regular)
-    return reduce_scatter__ompi(sendbuf, recvbuf, recvcounts, datatype, op, comm);
+  if(not regular){
+    delete[] displs;
+    return reduce_scatter__mpich(sendbuf, recvbuf, recvcounts, datatype, op, comm);
+  }
 
   unsigned char* tmpbuf = smpi_get_tmp_sendbuffer(count * datatype->get_extent());