- simgrid::s4u::Actor::onCreation.connect([](simgrid::s4u::ActorPtr actor) {
- smpi_add_process(actor);
+ simgrid::s4u::Actor::on_creation.connect([](simgrid::s4u::ActorPtr actor) {
+ if (not actor->is_daemon()) {
+ process_data.insert({actor, new simgrid::smpi::Process(actor, nullptr)});
+ }
+ });
+ simgrid::s4u::Actor::on_destruction.connect([](simgrid::s4u::ActorPtr actor) {
+ auto it = process_data.find(actor);
+ if (it != process_data.end()) {
+ delete it->second;
+ process_data.erase(it);
+ }