- simgrid::surf::on_postparse.connect(MSG_post_create_environment);
- simgrid::s4u::Host::onCreation.connect([](simgrid::s4u::Host& host) {
- MSG_host_create_(&host);
- });
- MSG_HOST_LEVEL = simgrid::s4u::Host::extension_create([](void *p) {
- __MSG_host_priv_free((msg_host_priv_t) p);
+ msg_global->sent_msg = 0;
+ msg_global->task_copy_callback = nullptr;
+ msg_global->process_data_cleanup = nullptr;
+ simgrid::s4u::Actor::on_termination.connect([](simgrid::s4u::Actor const& actor) {
+ // free the data if a function was provided
+ void* userdata = sg_actor_data(&actor);
+ if (userdata && msg_global->process_data_cleanup)
+ msg_global->process_data_cleanup(userdata);