Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Potential crash --
[simgrid.git] / src / smpi / smpi_comm.cpp
index 36c03e6..d4941e4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015. The SimGrid Team.
+/* Copyright (c) 2010-2017. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -18,7 +18,7 @@
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_comm, smpi, "Logging specific to SMPI (comm)");
 
- Comm mpi_MPI_COMM_UNINITIALIZED;
simgrid::smpi::Comm mpi_MPI_COMM_UNINITIALIZED;
 MPI_Comm MPI_COMM_UNINITIALIZED=&mpi_MPI_COMM_UNINITIALIZED;
 
 /* Support for cartesian topology was added, but there are 2 other types of topology, graph et dist graph. In order to
@@ -505,6 +505,24 @@ int Comm::add_f() {
 }
 
 
+void Comm::add_rma_win(MPI_Win win){
+  rma_wins_.push_back(win);
+}
+
+void Comm::remove_rma_win(MPI_Win win){
+  rma_wins_.remove(win);
+}
+
+void Comm::finish_rma_calls(){
+  for(auto it : rma_wins_){
+    if(it->rank()==this->rank()){//is it ours (for MPI_COMM_WORLD)?
+      int finished = it->finish_comms();
+      XBT_DEBUG("Barrier for rank %d - Finished %d RMA calls",this->rank(), finished);
+    }
+  }
+}
+
+
 }
 }