- XBT_DEBUG("action(%p) index %d", action, action->m_indexHeap);
- if (action->m_indexHeap >= 0) {
- CpuTiAction *heap_act = (CpuTiAction*)
- xbt_heap_remove(static_cast<CpuTiModel*>(getModel())->p_tiActionHeap, action->m_indexHeap);
- if (heap_act != action)
- DIE_IMPOSSIBLE;
- }
- if (min_finish != NO_MAX_DURATION)
- xbt_heap_push(static_cast<CpuTiModel*>(getModel())->p_tiActionHeap, action, min_finish);
-
- XBT_DEBUG
- ("Update finish time: Cpu(%s) Action: %p, Start Time: %f Finish Time: %f Max duration %f",
- getName(), action, action->getStartTime(),
- action->m_finish,
- action->getMaxDuration());
+ if (min_finish > NO_MAX_DURATION)
+ action.heapUpdate(model()->getActionHeap(), min_finish, kernel::resource::Action::Type::NOTSET);
+ else
+ action.heapRemove(model()->getActionHeap());
+
+ XBT_DEBUG("Update finish time: Cpu(%s) Action: %p, Start Time: %f Finish Time: %f Max duration %f", getCname(),
+ &action, action.getStartTime(), action.getFinishTime(), action.getMaxDuration());