X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/499ee6ecf7dd2ec57ed57613da3ea947d42de781..2db0630d598bd5bf5daa239297202b85e8ff0813:/src/surf/cpu_ti.cpp diff --git a/src/surf/cpu_ti.cpp b/src/surf/cpu_ti.cpp index 7df39bf75d..90a5316a95 100644 --- a/src/surf/cpu_ti.cpp +++ b/src/surf/cpu_ti.cpp @@ -333,7 +333,7 @@ double CpuTiModel::next_occuring_event(double now) /* get the min next event if heap not empty */ if (not get_action_heap().empty()) - min_action_duration = actionHeapTopDate() - now; + min_action_duration = get_action_heap().top_date() - now; XBT_DEBUG("Share resources, min next event date: %f", min_action_duration); @@ -342,8 +342,8 @@ double CpuTiModel::next_occuring_event(double now) void CpuTiModel::update_actions_state(double now, double /*delta*/) { - while (not get_action_heap().empty() && actionHeapTopDate() <= now) { - CpuTiAction* action = static_cast(actionHeapPop()); + while (not get_action_heap().empty() && double_equals(get_action_heap().top_date(), now, sg_surf_precision)) { + CpuTiAction* action = static_cast(get_action_heap().pop()); XBT_DEBUG("Action %p: finish", action); action->finish(kernel::resource::Action::State::done); /* update remaining amount of all actions */ @@ -425,7 +425,7 @@ void CpuTi::apply_event(tmgr_trace_event_t event, double value) 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); } } } @@ -485,9 +485,9 @@ void CpuTi::update_actions_finish_time(double now) } /* add in action heap */ if (min_finish > NO_MAX_DURATION) - action.heapUpdate(min_finish, kernel::resource::Action::Type::unset); + 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()); @@ -610,7 +610,7 @@ CpuTiAction::~CpuTiAction() 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); } @@ -623,7 +623,7 @@ void CpuTiAction::set_state(Action::State state) void CpuTiAction::cancel() { this->set_state(Action::State::failed); - heapRemove(); + get_model()->get_action_heap().remove(this); cpu_->set_modified(true); } @@ -632,7 +632,7 @@ void CpuTiAction::suspend() 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(); @@ -663,7 +663,7 @@ void CpuTiAction::set_max_duration(double duration) min_finish = get_finish_time(); /* add in action heap */ - heapUpdate(min_finish, Action::Type::unset); + get_model()->get_action_heap().update(this, min_finish, kernel::resource::ActionHeap::Type::unset); XBT_OUT(); }