-/** Wake up all processes waiting for a Surf action to finish */
-static void SIMIX_wake_processes()
-{
- for (auto const& model : *all_existing_models) {
- simgrid::kernel::resource::Action* action;
-
- XBT_DEBUG("Handling the processes whose action failed (if any)");
- while ((action = surf_model_extract_failed_action_set(model))) {
- XBT_DEBUG(" Handling Action %p",action);
- SIMIX_simcall_exit(static_cast<simgrid::kernel::activity::ActivityImpl*>(action->get_data()));
- }
- XBT_DEBUG("Handling the processes whose action terminated normally (if any)");
- while ((action = surf_model_extract_done_action_set(model))) {
- XBT_DEBUG(" Handling Action %p",action);
- if (action->get_data() == nullptr)
- XBT_DEBUG("probably vcpu's action %p, skip", action);
- else
- SIMIX_simcall_exit(static_cast<simgrid::kernel::activity::ActivityImpl*>(action->get_data()));
- }
- }
-}
-
-/** Handle any pending timer */