Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
cleanup dup_with_info to avoid leaking in some cases
[simgrid.git] / src / smpi / include / smpi_comm.hpp
index e43c5b3..a71e1f5 100644 (file)
@@ -7,6 +7,7 @@
 #define SMPI_COMM_HPP_INCLUDED
 
 #include <list>
+#include <string>
 #include "smpi_keyvals.hpp"
 #include "smpi_group.hpp"
 #include "smpi_topo.hpp"
@@ -28,6 +29,8 @@ class Comm : public F2C, public Keyval{
   int is_blocked_;              // are ranks allocated on the same smp node contiguous ?
   int is_smp_comm_;             // set to 0 in case this is already an intra-comm or a leader-comm to avoid recursivity
   std::list<MPI_Win> rma_wins_; // attached windows for synchronization.
+  std::string name_;
+  MPI_Info info_;
 
 public:
   static std::unordered_map<int, smpi_key_elem> keyvals_;
@@ -36,11 +39,15 @@ public:
   Comm() = default;
   Comm(MPI_Group group, MPI_Topology topo, int smp = 0);
   int dup(MPI_Comm* newcomm);
+  int dup_with_info(MPI_Info info, MPI_Comm* newcomm);
   MPI_Group group();
   MPI_Topology topo() { return topo_; }
   int size();
   int rank();
   void get_name(char* name, int* len);
+  void set_name(const char* name);
+  MPI_Info info();
+  void set_info( MPI_Info info);
   void set_leaders_comm(MPI_Comm leaders);
   void set_intra_comm(MPI_Comm leaders) { intra_comm_ = leaders; };
   int* get_non_uniform_map();