Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add an assert in case a platform using cluster routing does not link nodes to links...
[simgrid.git] / src / simix / SynchroSleep.cpp
index 853dd31..bc6cbe0 100644 (file)
@@ -3,6 +3,10 @@
 /* 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 <xbt/log.h>
+
+#include <simgrid/s4u/host.hpp>
+
 #include "src/simix/SynchroSleep.hpp"
 #include "src/surf/surf_interface.hpp"
 #include "src/simix/popping_private.h"
@@ -22,11 +26,11 @@ void simgrid::simix::Sleep::resume()
 
 void simgrid::simix::Sleep::post()
 {
-  smx_simcall_t simcall;
-  e_smx_state_t state;
-
-  while ((simcall = (smx_simcall_t) xbt_fifo_shift(simcalls))) {
+  while (!simcalls.empty()) {
+    smx_simcall_t simcall = simcalls.front();
+    simcalls.pop_front();
 
+    e_smx_state_t state;
     switch (surf_sleep->getState()){
       case simgrid::surf::Action::State::failed:
         simcall->issuer->context->iwannadie = 1;
@@ -46,7 +50,7 @@ void simgrid::simix::Sleep::post()
       simcall->issuer->context->iwannadie = 1;
     }
     simcall_process_sleep__set__result(simcall, state);
-    simcall->issuer->waiting_synchro = NULL;
+    simcall->issuer->waiting_synchro = nullptr;
     if (simcall->issuer->suspended) {
       XBT_DEBUG("Wait! This process is suspended and can't wake up now.");
       simcall->issuer->suspended = 0;