X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cbc68013e8f1008e88a8cefb1e60b7813cf8a409..15f804cfddebc4fe4b305acd1c66487f2405420d:/src/smpi/include/smpi_comm.hpp diff --git a/src/smpi/include/smpi_comm.hpp b/src/smpi/include/smpi_comm.hpp index 27d71bd63e..3f57cfa260 100644 --- a/src/smpi/include/smpi_comm.hpp +++ b/src/smpi/include/smpi_comm.hpp @@ -8,6 +8,7 @@ #include #include +#include "smpi_errhandler.hpp" #include "smpi_keyvals.hpp" #include "smpi_group.hpp" #include "smpi_topo.hpp" @@ -16,6 +17,7 @@ namespace simgrid{ namespace smpi{ class Comm : public F2C, public Keyval{ + friend Topo; MPI_Group group_; SMPI_Topo_type topoType_; MPI_Topology topo_; // to be replaced by an union @@ -27,11 +29,12 @@ class Comm : public F2C, public Keyval{ int is_uniform_; int* non_uniform_map_; // set if smp nodes have a different number of processes allocated 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 + int is_smp_comm_; // set to 0 in case this is already an intra-comm or a leader-comm to avoid recursion std::list rma_wins_; // attached windows for synchronization. std::string name_; MPI_Info info_; int id_; + MPI_Errhandler errhandler_; public: static std::unordered_map keyvals_; @@ -50,6 +53,8 @@ public: void set_name(const char* name); MPI_Info info(); void set_info( MPI_Info info); + MPI_Errhandler errhandler(); + void set_errhandler( MPI_Errhandler errhandler); void set_leaders_comm(MPI_Comm leaders); void set_intra_comm(MPI_Comm leaders) { intra_comm_ = leaders; }; int* get_non_uniform_map();