Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Added one more missing call. C-MPI should now compile.
authorPierre-Nicolas Clauss <pini@tuxfamily.org>
Thu, 31 Mar 2011 15:28:13 +0000 (17:28 +0200)
committerPierre-Nicolas Clauss <pini@tuxfamily.org>
Thu, 31 Mar 2011 15:28:13 +0000 (17:28 +0200)
include/smpi/smpi.h
src/smpi/smpi_mpi.c
src/smpi/smpi_pmpi.c

index 4b5e72c..68c9cf9 100644 (file)
@@ -222,6 +222,7 @@ MPI_CALL(XBT_PUBLIC(int), MPI_Comm_dup, (MPI_Comm comm, MPI_Comm * newcomm));
 MPI_CALL(XBT_PUBLIC(int), MPI_Comm_create,
                             (MPI_Comm comm, MPI_Group group, MPI_Comm * newcomm));
 MPI_CALL(XBT_PUBLIC(int), MPI_Comm_free, (MPI_Comm * comm));
+MPI_CALL(XBT_PUBLIC(int), MPI_Comm_disconnect, (MPI_Comm * comm));
 MPI_CALL(XBT_PUBLIC(int), MPI_Comm_split, (MPI_Comm comm, int color, int key, MPI_Comm* comm_out));
 
 MPI_CALL(XBT_PUBLIC(int), MPI_Send_init,
index c709e0a..d86fcd8 100644 (file)
@@ -194,6 +194,11 @@ int MPI_Comm_free(MPI_Comm * comm)
   return PMPI_Comm_free(comm);
 }
 
+int MPI_Comm_disconnect(MPI_Comm * comm)
+{
+  return PMPI_Comm_disconnect(comm);
+}
+
 int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm* comm_out)
 {
   return PMPI_Comm_split(comm, color, key, comm_out);
index 0422b98..ec3da34 100644 (file)
@@ -763,6 +763,25 @@ int PMPI_Comm_free(MPI_Comm * comm)
   return retval;
 }
 
+int PMPI_Comm_disconnect(MPI_Comm * comm)
+{
+  /* TODO: wait until all communication in comm are done */
+  int retval;
+
+  smpi_bench_end();
+  if (comm == NULL) {
+    retval = MPI_ERR_ARG;
+  } else if (*comm == MPI_COMM_NULL) {
+    retval = MPI_ERR_COMM;
+  } else {
+    smpi_comm_destroy(*comm);
+    *comm = MPI_COMM_NULL;
+    retval = MPI_SUCCESS;
+  }
+  smpi_bench_begin();
+  return retval;
+}
+
 int PMPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm* comm_out)
 {
   int retval;