Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
remove useless tests and reduce number of breaks
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 10 Nov 2017 15:59:19 +0000 (16:59 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 10 Nov 2017 15:59:19 +0000 (16:59 +0100)
src/surf/surf_c_bindings.cpp

index e57f843..8bbd642 100644 (file)
@@ -74,7 +74,7 @@ double surf_solve(double max_date)
     XBT_DEBUG("Next TRACE event: %f", next_event_date);
 
     if (not surf_network_model->nextOccuringEventIsIdempotent()) { // NS3, I see you
-      if (next_event_date!=-1.0 && time_delta!=-1.0) {
+      if (next_event_date != -1.0) {
         time_delta = MIN(next_event_date - NOW, time_delta);
       } else {
         time_delta = MAX(next_event_date - NOW, time_delta); // Get the positive component
@@ -85,18 +85,16 @@ double surf_solve(double max_date)
       model_next_action_end = surf_network_model->nextOccuringEvent(time_delta);
 
       XBT_DEBUG("Min for network : %f", model_next_action_end);
-      if(model_next_action_end>=0.0)
+      if (model_next_action_end >= 0.0)
         time_delta = model_next_action_end;
     }
 
-    if (next_event_date < 0.0) {
-      XBT_DEBUG("no next TRACE event. Stop searching for it");
+    if (next_event_date < 0.0 || (next_event_date > NOW + time_delta)) {
+      // next event may have already occurred or will after the next resource change, then bail out
+      XBT_DEBUG("no next usable TRACE event. Stop searching for it");
       break;
     }
 
-    if ((time_delta == -1.0) || (next_event_date > NOW + time_delta))
-      break; // next event occurs after the next resource change, bail out
-
     XBT_DEBUG("Updating models (min = %g, NOW = %g, next_event_date = %g)", time_delta, NOW, next_event_date);
 
     while ((event = future_evt_set->pop_leq(next_event_date, &value, &resource))) {
@@ -129,9 +127,9 @@ double surf_solve(double max_date)
   NOW = NOW + time_delta;
 
   // Inform the models of the date change
-  for (auto const& model : *all_existing_models) {
+  for (auto const& model : *all_existing_models)
     model->updateActionsState(NOW, time_delta);
-  }
+
   simgrid::s4u::onTimeAdvance(time_delta);
 
   TRACE_paje_dump_buffer(false);