#include <list>
#include <string>
+#include "smpi_errhandler.hpp"
#include "smpi_keyvals.hpp"
#include "smpi_group.hpp"
#include "smpi_topo.hpp"
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<MPI_Win> rma_wins_; // attached windows for synchronization.
std::string name_;
MPI_Info info_;
int id_;
+ MPI_Errhandler errhandler_;
public:
static std::unordered_map<int, smpi_key_elem> keyvals_;
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();
static void destroy(MPI_Comm comm);
void init_smp();
- int add_f() override;
static void free_f(int id);
static Comm* f2c(int);