- 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, 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());