X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/268aabc05cf124783cd4972c9bc3d8b735ce5f95..f159a7002798e65df6c90c3b9f774f48920aa41b:/src/surf/cpu_cas01.cpp diff --git a/src/surf/cpu_cas01.cpp b/src/surf/cpu_cas01.cpp index 5f99332147..052301832a 100644 --- a/src/surf/cpu_cas01.cpp +++ b/src/surf/cpu_cas01.cpp @@ -118,22 +118,22 @@ void CpuCas01Model::addTraces() /* connect all traces relative to hosts */ xbt_dict_foreach(trace_connect_list_host_avail, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - CpuCas01 *host = static_cast(sg_host_by_name(elm)->pimpl_cpu); + Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu; - xbt_assert(host, "Host %s undefined", elm); + xbt_assert(cpu, "Host %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); - host->setStateEvent(future_evt_set->add_trace(trace, 0.0, host)); + cpu->set_state_trace(trace); } - xbt_dict_foreach(trace_connect_list_power, cursor, trace_name, elm) { + xbt_dict_foreach(trace_connect_list_host_speed, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - CpuCas01 *host = static_cast(sg_host_by_name(elm)->pimpl_cpu); + Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu; - xbt_assert(host, "Host %s undefined", elm); + xbt_assert(cpu, "Host %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); - host->setPowerEvent(future_evt_set->add_trace(trace, 0.0, host)); + cpu->set_speed_trace(trace); } } @@ -148,7 +148,6 @@ CpuCas01::CpuCas01(CpuCas01Model *model, simgrid::s4u::Host *host, xbt_dynar_t s speedPeak, pstate, core, xbt_dynar_get_as(speedPeak, pstate, double), speedScale, initiallyOn) { - p_speedEvent = NULL; XBT_DEBUG("CPU create: peak=%f, pstate=%d", m_speedPeak, m_pstate); @@ -166,16 +165,6 @@ CpuCas01::~CpuCas01() xbt_dynar_free(&p_speedPeakList); } -void CpuCas01::setStateEvent(tmgr_trace_iterator_t stateEvent) -{ - p_stateEvent = stateEvent; -} - -void CpuCas01::setPowerEvent(tmgr_trace_iterator_t powerEvent) -{ - p_speedEvent = powerEvent; -} - xbt_dynar_t CpuCas01::getSpeedPeakList(){ return p_speedPeakList; } @@ -216,8 +205,7 @@ void CpuCas01::updateState(tmgr_trace_iterator_t event_type, double value, doubl m_speedScale = value; onSpeedChange(); - if (tmgr_trace_event_free(event_type)) - p_speedEvent = NULL; + tmgr_trace_event_unref(&p_speedEvent); } else if (event_type == p_stateEvent) { /* TODO (Hypervisor): do the same thing for constraint_core[i] */ xbt_assert(m_core == 1, "FIXME: add state change code also for constraint_core[i]"); @@ -242,17 +230,15 @@ void CpuCas01::updateState(tmgr_trace_iterator_t event_type, double value, doubl } } } - if (tmgr_trace_event_free(event_type)) - p_stateEvent = NULL; + tmgr_trace_event_unref(&p_stateEvent); } else { - XBT_CRITICAL("Unknown event ! \n"); - xbt_abort(); + xbt_die("Unknown event!\n"); } return; } -CpuAction *CpuCas01::execute(double size) +CpuAction *CpuCas01::execution_start(double size) { XBT_IN("(%s,%g)", getName(), size);