Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move common test to Action::update_max_duration.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 25 Feb 2019 13:20:22 +0000 (14:20 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 25 Feb 2019 21:10:05 +0000 (22:10 +0100)
src/kernel/resource/Action.cpp
src/surf/cpu_interface.cpp
src/surf/network_cm02.cpp
src/surf/network_constant.cpp
src/surf/ptask_L07.cpp
src/surf/storage_n11.cpp

index 391ccd3..3ea572b 100644 (file)
@@ -198,7 +198,8 @@ double Action::get_remains()
 
 void Action::update_max_duration(double delta)
 {
-  double_update(&max_duration_, delta, sg_surf_precision);
+  if (max_duration_ != NO_MAX_DURATION)
+    double_update(&max_duration_, delta, sg_surf_precision);
 }
 void Action::update_remains(double delta)
 {
index 0c71813..c507a90 100644 (file)
@@ -39,9 +39,7 @@ void CpuModel::update_actions_state_full(double /*now*/, double delta)
     ++it; // increment iterator here since the following calls to action.finish() may invalidate it
 
     action.update_remains(action.get_variable()->get_value() * delta);
-
-    if (action.get_max_duration() != NO_MAX_DURATION)
-      action.update_max_duration(delta);
+    action.update_max_duration(delta);
 
     if (((action.get_remains_no_update() <= 0) && (action.get_variable()->get_weight() > 0)) ||
         ((action.get_max_duration() != NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
index 3deb80e..f590295 100644 (file)
@@ -424,7 +424,6 @@ void NetworkCm02Action::update_remains_lazy(double now)
     return;
 
   double delta        = now - get_last_update();
-  double max_duration = get_max_duration();
 
   if (get_remains_no_update() > 0) {
     XBT_DEBUG("Updating action(%p): remains was %f, last_update was: %f", this, get_remains_no_update(),
@@ -434,13 +433,10 @@ void NetworkCm02Action::update_remains_lazy(double now)
     XBT_DEBUG("Updating action(%p): remains is now %f", this, get_remains_no_update());
   }
 
-  if (max_duration > NO_MAX_DURATION) {
-    double_update(&max_duration, delta, sg_surf_precision);
-    set_max_duration(max_duration);
-  }
+  update_max_duration(delta);
 
   if ((get_remains_no_update() <= 0 && (get_variable()->get_weight() > 0)) ||
-      ((max_duration > NO_MAX_DURATION) && (max_duration <= 0))) {
+      ((get_max_duration() != NO_MAX_DURATION) && (get_max_duration() <= 0))) {
     finish(Action::State::FINISHED);
     get_model()->get_action_heap().remove(this);
   }
index 41a3385..c8a5bcb 100644 (file)
@@ -59,8 +59,7 @@ void NetworkConstantModel::update_actions_state(double /*now*/, double delta)
       }
     }
     action.update_remains(action.get_cost() * delta / action.initial_latency_);
-    if (action.get_max_duration() != NO_MAX_DURATION)
-      action.update_max_duration(delta);
+    action.update_max_duration(delta);
 
     if ((action.get_remains_no_update() <= 0) ||
         ((action.get_max_duration() != NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
index 5b6be89..f45d2f7 100644 (file)
@@ -99,9 +99,7 @@ void HostL07Model::update_actions_state(double /*now*/, double delta)
     XBT_DEBUG("Action (%p) : remains (%g) updated by %g.", &action, action.get_remains(),
               action.get_variable()->get_value() * delta);
     action.update_remains(action.get_variable()->get_value() * delta);
-
-    if (action.get_max_duration() > NO_MAX_DURATION)
-      action.update_max_duration(delta);
+    action.update_max_duration(delta);
 
     XBT_DEBUG("Action (%p) : remains (%g).", &action, action.get_remains());
 
index 7a8e40a..71b99a9 100644 (file)
@@ -74,9 +74,7 @@ void StorageN11Model::update_actions_state(double /*now*/, double delta)
     StorageAction& action = static_cast<StorageAction&>(*it);
     ++it; // increment iterator here since the following calls to action.finish() may invalidate it
     action.update_remains(lrint(action.get_variable()->get_value() * delta));
-
-    if (action.get_max_duration() > NO_MAX_DURATION)
-      action.update_max_duration(delta);
+    action.update_max_duration(delta);
 
     if (((action.get_remains_no_update() <= 0) && (action.get_variable()->get_weight() > 0)) ||
         ((action.get_max_duration() > NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {