- CpuAction *action = nullptr;
- ActionList *running_actions = getRunningActionSet();
-
- for(ActionList::iterator it(running_actions->begin()), itNext=it, itend(running_actions->end())
- ; it != itend ; it=itNext) {
- ++itNext;
- action = static_cast<CpuAction*>(&*it);
- if (TRACE_is_enabled()) {
- Cpu *cpu = static_cast<Cpu*> (lmm_constraint_id(lmm_get_cnst_from_var(getMaxminSystem(), action->getVariable(), 0)) );
-
- TRACE_surf_host_set_utilization(cpu->getName(),
- action->getCategory(),
- lmm_variable_getvalue(action->getVariable()),
- now - delta,
- delta);
- TRACE_last_timestamp_to_dump = now - delta;
- }
-
- action->updateRemains(lmm_variable_getvalue(action->getVariable()) * delta);
+ for (auto it = std::begin(*get_started_action_set()); it != std::end(*get_started_action_set());) {
+ CpuAction& action = static_cast<CpuAction&>(*it);
+ ++it; // increment iterator here since the following calls to action.finish() may invalidate it