if (process->comm_intra() != MPI_COMM_NULL) {
simgrid::smpi::Comm::destroy(process->comm_intra());
}
- xbt_os_timer_free(process->timer());
- xbt_mutex_destroy(process->mailboxes_mutex());
+ delete process;
}
process_data.clear();
simgrid::s4u::Actor::onCreation.connect([](simgrid::s4u::ActorPtr actor) {
process_data.insert({actor, new simgrid::smpi::Process(actor, nullptr)});
});
- simgrid::s4u::Actor::onDestruction.connect([](simgrid::s4u::ActorPtr actor) {
- if (process_data.find(actor) != process_data.end()) {
- delete process_data.at(actor);
- process_data.erase(actor);
- }
- });
-
smpi_init_options();
smpi_global_init();
smpi_check_options();