- CpuAction *action = nullptr;
- ActionList *running_actions = getRunningActionSet();
- ActionList::iterator it(running_actions->begin());
- ActionList::iterator itNext = it;
- ActionList::iterator itend(running_actions->end());
- for (; 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->getCname(), action->getCategory(),
- lmm_variable_getvalue(action->getVariable()), now - delta, delta);
- TRACE_last_timestamp_to_dump = now - 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