Comm::destroy(smpi_process()->comm_world());
return;
}
- if(comm != MPI_COMM_WORLD)
+ if (comm != MPI_COMM_WORLD && not comm->deleted()) {
+ comm->cleanup_attr<Comm>();
comm->mark_as_deleted();
+ }
Comm::unref(comm);
}
int my_local_size=comm_intra->size();
if(comm_intra->rank()==0) {
int is_uniform = 1;
- int* non_uniform_map = xbt_new0(int,leader_group_size);
+ auto* non_uniform_map = xbt_new0(int, leader_group_size);
allgather__ring(&my_local_size, 1, MPI_INT,
non_uniform_map, 1, MPI_INT, leader_comm);
for(i=0; i < leader_group_size; i++) {
MPI_Info Comm::info()
{
- if (info_ == MPI_INFO_NULL)
- info_ = new Info();
- info_->ref();
return info_;
}