- /* Autorestart all process */
- for (auto host: host_that_restart) {
- XBT_INFO("Restart processes on host %s", host->cname());
- SIMIX_host_autorestart(host);
- }
- host_that_restart.clear();
-
- /* Clean processes to destroy */
- SIMIX_process_empty_trash();
-
- XBT_DEBUG("### time %f, #processes %zu, #to_run %lu", time, simix_global->process_list.size(),
- xbt_dynar_length(simix_global->process_to_run));
-
- /* If only daemon processes remain, cancel their actions, mark them to die and reschedule them */
- if (simix_global->process_list.size() == simix_global->daemons.size())
- for (const auto& dmon : simix_global->daemons) {
- XBT_DEBUG("Kill %s", dmon->cname());
- SIMIX_process_kill(dmon, simix_global->maestro_process);
- }
-
- if (xbt_dynar_is_empty(simix_global->process_to_run) &&
- !simix_global->process_list.empty())
- simgrid::simix::onDeadlock();