ActorExt::~ActorExt()
{
- if (info_env_ != MPI_INFO_NULL)
- simgrid::smpi::Info::unref(info_env_);
- if (comm_self_ != MPI_COMM_NULL)
- simgrid::smpi::Comm::destroy(comm_self_);
- if (comm_intra_ != MPI_COMM_NULL)
- simgrid::smpi::Comm::destroy(comm_intra_);
xbt_os_timer_free(timer_);
}
{
state_ = SmpiProcessState::FINALIZED;
XBT_DEBUG("<%ld> Process left the game", actor_->get_pid());
-
+ if (info_env_ != MPI_INFO_NULL)
+ simgrid::smpi::Info::unref(info_env_);
+ if (comm_self_ != MPI_COMM_NULL)
+ simgrid::smpi::Comm::destroy(comm_self_);
+ if (comm_intra_ != MPI_COMM_NULL)
+ simgrid::smpi::Comm::destroy(comm_intra_);
smpi_deployment_unregister_process(instance_id_);
}
simgrid::smpi::Errhandler::unref(errhandlers_[this->rank()]);
errhandlers_[this->rank()]=errhandler;
}
- if (errhandler != MPI_ERRHANDLER_NULL && this != MPI_COMM_SELF)
+ if (errhandler != MPI_ERRHANDLER_NULL)
errhandler->ref();
}