X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fb588fbb8c119a8f04e6d2cb15b663257786ba70..28d7faa60b9789a70d99c922e163c4aa7de363de:/src/surf/cpu_interface.cpp diff --git a/src/surf/cpu_interface.cpp b/src/surf/cpu_interface.cpp index 8c667e5bd4..906e07e783 100644 --- a/src/surf/cpu_interface.cpp +++ b/src/surf/cpu_interface.cpp @@ -53,13 +53,10 @@ void cpu_add_traces(){ void CpuModel::updateActionsStateLazy(double now, double /*delta*/) { CpuActionPtr action; - while ((!getActionHeap()->empty()) - && (double_equals(getActionHeap()->topKey(), now, sg_surf_precision))) { - - action = static_cast(getActionHeap()->topValue()); - getActionHeap()->pop(); + while ((xbt_heap_size(getActionHeap()) > 0) + && (double_equals(xbt_heap_maxkey(getActionHeap()), now, sg_surf_precision))) { + action = static_cast(xbt_heap_pop(getActionHeap())); XBT_CDEBUG(surf_kernel, "Something happened to action %p", action); -#ifdef HAVE_TRACING if (TRACE_is_enabled()) { CpuPtr cpu = static_cast(lmm_constraint_id(lmm_get_cnst_from_var(getMaxminSystem(), action->getVariable(), 0))); TRACE_surf_host_set_utilization(cpu->getName(), action->getCategory(), @@ -67,7 +64,6 @@ void CpuModel::updateActionsStateLazy(double now, double /*delta*/) action->getLastUpdate(), now - action->getLastUpdate()); } -#endif action->finish(); XBT_CDEBUG(surf_kernel, "Action %p finished", action); @@ -75,8 +71,8 @@ void CpuModel::updateActionsStateLazy(double now, double /*delta*/) /* set the remains to 0 due to precision problems when updating the remaining amount */ action->setRemains(0); action->setState(SURF_ACTION_DONE); + action->heapRemove(getActionHeap()); //FIXME: strange call since action was already popped } -#ifdef HAVE_TRACING if (TRACE_is_enabled()) { //defining the last timestamp that we can safely dump to trace file //without losing the event ascending order (considering all CPU's) @@ -97,7 +93,6 @@ void CpuModel::updateActionsStateLazy(double now, double /*delta*/) TRACE_last_timestamp_to_dump = smaller; } } -#endif return; } @@ -110,7 +105,6 @@ void CpuModel::updateActionsStateFull(double now, double delta) ; it != itend ; it=itNext) { ++itNext; action = static_cast(&*it); -#ifdef HAVE_TRACING if (TRACE_is_enabled()) { CpuPtr x = (CpuPtr) lmm_constraint_id(lmm_get_cnst_from_var (getMaxminSystem(), action->getVariable(), 0)); @@ -122,7 +116,6 @@ void CpuModel::updateActionsStateFull(double now, double delta) delta); TRACE_last_timestamp_to_dump = now - delta; } -#endif action->updateRemains(lmm_variable_getvalue(action->getVariable()) * delta); @@ -252,12 +245,10 @@ void CpuAction::updateRemainingLazy(double now) XBT_CDEBUG(surf_kernel, "Updating action(%p): remains was %f, last_update was: %f", this, m_remains, m_lastUpdate); double_update(&(m_remains), m_lastValue * delta, sg_maxmin_precision*sg_surf_precision); -#ifdef HAVE_TRACING if (TRACE_is_enabled()) { CpuPtr cpu = static_cast(lmm_constraint_id(lmm_get_cnst_from_var(getModel()->getMaxminSystem(), getVariable(), 0))); TRACE_surf_host_set_utilization(cpu->getName(), getCategory(), m_lastValue, m_lastUpdate, now - m_lastUpdate); } -#endif XBT_CDEBUG(surf_kernel, "Updating action(%p): remains is now %f", this, m_remains); }