- 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)
+ get_model()->get_action_heap().update(&action, min_finish, kernel::resource::ActionHeap::Type::unset);
+ else
+ get_model()->get_action_heap().remove(&action);
+
+ XBT_DEBUG("Update finish time: Cpu(%s) Action: %p, Start Time: %f Finish Time: %f Max duration %f", get_cname(),
+ &action, action.get_start_time(), action.get_finish_time(), action.get_max_duration());