}
/* get the min next event if heap not empty */
- if (not actionHeapIsEmpty())
- min_action_duration = actionHeapTopDate() - now;
+ if (not get_action_heap().empty())
+ min_action_duration = get_action_heap().top_date() - now;
XBT_DEBUG("Share resources, min next event date: %f", min_action_duration);
void CpuTiModel::update_actions_state(double now, double /*delta*/)
{
- while (not actionHeapIsEmpty() && actionHeapTopDate() <= now) {
- CpuTiAction* action = static_cast<CpuTiAction*>(actionHeapPop());
+ while (not get_action_heap().empty() && double_equals(get_action_heap().top_date(), now, sg_surf_precision)) {
+ CpuTiAction* action = static_cast<CpuTiAction*>(get_action_heap().pop());
XBT_DEBUG("Action %p: finish", action);
action->finish(kernel::resource::Action::State::done);
/* update remaining amount of all actions */
action.get_state() == kernel::resource::Action::State::not_in_the_system) {
action.set_finish_time(date);
action.set_state(kernel::resource::Action::State::failed);
- action.heapRemove();
+ model()->get_action_heap().remove(&action);
}
}
}
}
/* add in action heap */
if (min_finish > NO_MAX_DURATION)
- action.heapUpdate(min_finish, kernel::resource::Action::Type::NOTSET);
+ model()->get_action_heap().update(&action, min_finish, kernel::resource::ActionHeap::Type::unset);
else
- action.heapRemove();
+ model()->get_action_heap().remove(&action);
XBT_DEBUG("Update finish time: Cpu(%s) Action: %p, Start Time: %f Finish Time: %f Max duration %f", getCname(),
&action, action.get_start_time(), action.get_finish_time(), action.get_max_duration());
if (action_ti_hook.is_linked())
simgrid::xbt::intrusive_erase(cpu_->action_set_, *this);
/* remove from heap */
- heapRemove();
+ get_model()->get_action_heap().remove(this);
cpu_->set_modified(true);
}
void CpuTiAction::cancel()
{
this->set_state(Action::State::failed);
- heapRemove();
+ get_model()->get_action_heap().remove(this);
cpu_->set_modified(true);
}
XBT_IN("(%p)", this);
if (suspended_ != Action::SuspendStates::sleeping) {
suspended_ = Action::SuspendStates::suspended;
- heapRemove();
+ get_model()->get_action_heap().remove(this);
cpu_->set_modified(true);
}
XBT_OUT();
min_finish = get_finish_time();
/* add in action heap */
- heapUpdate(min_finish, Action::Type::NOTSET);
+ get_model()->get_action_heap().update(this, min_finish, kernel::resource::ActionHeap::Type::unset);
XBT_OUT();
}