]> AND Public Git Repository - simgrid.git/blobdiff - src/smpi/include/smpi_comm.hpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix refcounting of MPI keyvals when keyval_free is called twice.
[simgrid.git] / src / smpi / include / smpi_comm.hpp
index 70fa4ec3bee65f8b76d9256d93d86d0dede947cf..f54a743c8b80f6db4b29d23811c3d1134f8e3ee0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2010-2021. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -37,6 +37,7 @@ class Comm : public F2C, public Keyval{
   MPI_Info info_ = MPI_INFO_NULL;
   int id_;
   MPI_Errhandler errhandler_ = MPI_ERRORS_ARE_FATAL;
+  MPI_Errhandler* errhandlers_ = nullptr; //for MPI_COMM_WORLD only
 
 public:
   static std::unordered_map<int, smpi_key_elem> keyvals_;
@@ -53,6 +54,7 @@ public:
   int rank() const;
   int id() const;
   void get_name(char* name, int* len) const;
+  std::string name() const override;
   void set_name(const char* name);
   MPI_Info info();
   void set_info( MPI_Info info);
@@ -85,7 +87,7 @@ public:
 
   void add_rma_win(MPI_Win win);
   void remove_rma_win(MPI_Win win);
-  void finish_rma_calls();
+  void finish_rma_calls() const;
   MPI_Comm split_type(int type, int key, const Info* info);
 };