X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/00e649212cc6ca64c4cb8103e4c5bb4b98d2ff3f..b15676deb07a259d852b8166f915e064b93901f5:/src/surf/cpu_interface.cpp diff --git a/src/surf/cpu_interface.cpp b/src/surf/cpu_interface.cpp index 4e42b2199e..6443263e07 100644 --- a/src/surf/cpu_interface.cpp +++ b/src/surf/cpu_interface.cpp @@ -64,8 +64,10 @@ void CpuModel::updateActionsStateFull(double now, double delta) CpuAction *action = nullptr; ActionList *running_actions = getRunningActionSet(); ActionList::iterator it(running_actions->begin()); - ActionList::iterator itend(running_actions->end()) for (; it != itend; ++it) - { + ActionList::iterator itNext = it; + ActionList::iterator itend(running_actions->end()); + for (; it != itend; it = itNext) { + ++itNext; action = static_cast(&*it); if (TRACE_is_enabled()) { Cpu *cpu = static_cast (lmm_constraint_id(lmm_get_cnst_from_var(getMaxminSystem(), action->getVariable(), 0)) ); @@ -77,17 +79,11 @@ void CpuModel::updateActionsStateFull(double now, double delta) action->updateRemains(lmm_variable_getvalue(action->getVariable()) * delta); - if (action->getMaxDuration() != NO_MAX_DURATION) action->updateMaxDuration(delta); - - if ((action->getRemainsNoUpdate() <= 0) && - (lmm_get_variable_weight(action->getVariable()) > 0)) { - action->finish(); - action->setState(Action::State::done); - } else if ((action->getMaxDuration() != NO_MAX_DURATION) && - (action->getMaxDuration() <= 0)) { + if (((action->getRemainsNoUpdate() <= 0) && (lmm_get_variable_weight(action->getVariable()) > 0)) || + ((action->getMaxDuration() != NO_MAX_DURATION) && (action->getMaxDuration() <= 0))) { action->finish(); action->setState(Action::State::done); } @@ -123,12 +119,6 @@ Cpu::Cpu(Model* model, simgrid::s4u::Host* host, lmm_constraint_t constraint, st Cpu::~Cpu() = default; -/** @brief The amount of flop per second that this CPU can compute at its current DVFS level */ -double Cpu::getPstateSpeedCurrent() -{ - return speed_.peak; -} - int Cpu::getNbPStates() { return speedPerPstate_.size(); @@ -184,13 +174,13 @@ void Cpu::setStateTrace(tmgr_trace_t trace) { xbt_assert(stateEvent_ == nullptr, "Cannot set a second state trace to Host %s", host_->cname()); - stateEvent_ = future_evt_set->add_trace(trace, 0.0, this); + stateEvent_ = future_evt_set->add_trace(trace, this); } void Cpu::setSpeedTrace(tmgr_trace_t trace) { xbt_assert(speed_.event == nullptr, "Cannot set a second speed trace to Host %s", host_->cname()); - speed_.event = future_evt_set->add_trace(trace, 0.0, this); + speed_.event = future_evt_set->add_trace(trace, this); }