-/* Copyright (c) 2007-2017. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#include <csignal> /* Signal handling */
#include <cstdlib>
-#include <xbt/algorithm.hpp>
#include <xbt/functional.hpp>
#include <xbt/utility.hpp>
/** Wake up all processes waiting for a Surf action to finish */
static void SIMIX_wake_processes()
{
- surf_action_t action;
-
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);
* Long proof: processes remain sorted through an arbitrary (implicit, complex but fixed) order in all cases.
*
* - if there is no kill during the simulation, processes remain sorted according by their PID.
- * rational: This can be proved inductively.
+ * Rationale: This can be proved inductively.
* Assume that process_to_run is sorted at a beginning of one round (it is at round 0: the deployment file
* is parsed linearly).
* Let's show that it is still so at the end of this round.
XBT_CRITICAL("Oops ! Deadlock or code not perfectly clean.");
SIMIX_display_process_status();
+ simgrid::s4u::onDeadlock();
xbt_abort();
}
simgrid::s4u::onSimulationEnd();