From 27e5a1eebe0cc33508692e868ae7b369f4a482b4 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Mon, 25 Feb 2019 14:20:22 +0100 Subject: [PATCH] Move common test to Action::update_max_duration. --- src/kernel/resource/Action.cpp | 3 ++- src/surf/cpu_interface.cpp | 4 +--- src/surf/network_cm02.cpp | 8 ++------ src/surf/network_constant.cpp | 3 +-- src/surf/ptask_L07.cpp | 4 +--- src/surf/storage_n11.cpp | 4 +--- 6 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/kernel/resource/Action.cpp b/src/kernel/resource/Action.cpp index 391ccd3b5b..3ea572b2de 100644 --- a/src/kernel/resource/Action.cpp +++ b/src/kernel/resource/Action.cpp @@ -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) { diff --git a/src/surf/cpu_interface.cpp b/src/surf/cpu_interface.cpp index 0c7181333b..c507a90954 100644 --- a/src/surf/cpu_interface.cpp +++ b/src/surf/cpu_interface.cpp @@ -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))) { diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index 3deb80ea8c..f590295df9 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -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); } diff --git a/src/surf/network_constant.cpp b/src/surf/network_constant.cpp index 41a3385f4d..c8a5bcb924 100644 --- a/src/surf/network_constant.cpp +++ b/src/surf/network_constant.cpp @@ -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))) { diff --git a/src/surf/ptask_L07.cpp b/src/surf/ptask_L07.cpp index 5b6be896af..f45d2f7b33 100644 --- a/src/surf/ptask_L07.cpp +++ b/src/surf/ptask_L07.cpp @@ -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()); diff --git a/src/surf/storage_n11.cpp b/src/surf/storage_n11.cpp index 7a8e40aa5c..71b99a901d 100644 --- a/src/surf/storage_n11.cpp +++ b/src/surf/storage_n11.cpp @@ -74,9 +74,7 @@ void StorageN11Model::update_actions_state(double /*now*/, double delta) StorageAction& action = static_cast(*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))) { -- 2.20.1