- if (process->host && process->host_process_list_hook.is_linked()) {
- auto& list = process->host->extension<simgrid::simix::Host>()->process_list;
- list.erase(list.iterator_to(*process));
+ if (process->host && process->host_process_list_hook.is_linked())
+ simgrid::xbt::intrusive_erase(process->host->extension<simgrid::simix::Host>()->process_list, *process);
+ if (not process->smx_destroy_list_hook.is_linked()) {
+#if SIMGRID_HAVE_MC
+ xbt_dynar_push_as(simix_global->dead_actors_vector, smx_actor_t, process);
+#endif
+ simix_global->process_to_destroy.push_back(*process);