From 32c187d71846015df8c8d484161b137f1096e89e Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Tue, 26 Jan 2016 10:24:46 +0100 Subject: [PATCH] [trace_mgr] cosmetics and simplifications --- src/surf/cpu_cas01.cpp | 6 ++---- src/surf/cpu_ti.cpp | 11 +++------- src/surf/host_ptask_L07.cpp | 41 +++++++++++++++---------------------- src/surf/network_cm02.cpp | 18 ++++++---------- src/surf/trace_mgr.cpp | 9 ++++---- src/surf/trace_mgr.hpp | 8 ++++---- 6 files changed, 35 insertions(+), 58 deletions(-) diff --git a/src/surf/cpu_cas01.cpp b/src/surf/cpu_cas01.cpp index ae557e6516..ebf1f87530 100644 --- a/src/surf/cpu_cas01.cpp +++ b/src/surf/cpu_cas01.cpp @@ -205,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 = nullptr; + 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]"); @@ -231,8 +230,7 @@ void CpuCas01::updateState(tmgr_trace_iterator_t event_type, double value, doubl } } } - if (tmgr_trace_event_free(event_type)) - p_stateEvent = nullptr; + tmgr_trace_event_unref(&p_stateEvent); } else { xbt_die("Unknown event!\n"); } diff --git a/src/surf/cpu_ti.cpp b/src/surf/cpu_ti.cpp index d422089ae2..5450aadb53 100644 --- a/src/surf/cpu_ti.cpp +++ b/src/surf/cpu_ti.cpp @@ -614,8 +614,7 @@ void CpuTi::updateState(tmgr_trace_iterator_t event_type, p_availTrace = trace; - if (tmgr_trace_event_free(event_type)) - p_speedEvent = NULL; + tmgr_trace_event_unref(&p_speedEvent); } else if (event_type == p_stateEvent) { if (value > 0) { @@ -643,14 +642,10 @@ void CpuTi::updateState(tmgr_trace_iterator_t event_type, } } } - 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; } void CpuTi::updateActionsFinishTime(double now) diff --git a/src/surf/host_ptask_L07.cpp b/src/surf/host_ptask_L07.cpp index 1d230efa94..9ba3c567a3 100644 --- a/src/surf/host_ptask_L07.cpp +++ b/src/surf/host_ptask_L07.cpp @@ -503,49 +503,40 @@ bool LinkL07::isUsed(){ return lmm_constraint_used(getModel()->getMaxminSystem(), getConstraint()); } -void CpuL07::updateState(tmgr_trace_iterator_t event_type, double value, double /*date*/){ +void CpuL07::updateState(tmgr_trace_iterator_t triggered, double value, double /*date*/){ XBT_DEBUG("Updating cpu %s (%p) with value %g", getName(), this, value); - if (event_type == p_speedEvent) { - m_speedScale = value; - onSpeedChange(); - if (tmgr_trace_event_free(event_type)) - p_speedEvent = NULL; - } else if (event_type == p_stateEvent) { + if (triggered == p_speedEvent) { + m_speedScale = value; + onSpeedChange(); + tmgr_trace_event_unref(&p_speedEvent); + } else if (triggered == p_stateEvent) { if (value > 0) turnOn(); else turnOff(); - 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; } -void LinkL07::updateState(tmgr_trace_iterator_t event_type, double value, double date) { +void LinkL07::updateState(tmgr_trace_iterator_t triggered, double value, double date) { XBT_DEBUG("Updating link %s (%p) with value=%f for date=%g", getName(), this, value, date); - if (event_type == p_bwEvent) { + if (triggered == p_bwEvent) { updateBandwidth(value, date); - if (tmgr_trace_event_free(event_type)) - p_bwEvent = NULL; - } else if (event_type == p_latEvent) { + tmgr_trace_event_unref(&p_bwEvent); + } else if (triggered == p_latEvent) { updateLatency(value, date); - if (tmgr_trace_event_free(event_type)) - p_latEvent = NULL; - } else if (event_type == p_stateEvent) { + tmgr_trace_event_unref(&p_latEvent); + } else if (triggered == p_stateEvent) { if (value > 0) turnOn(); else turnOff(); - 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; } double LinkL07::getBandwidth() diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index aa99623e46..514c88335f 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -554,22 +554,19 @@ void NetworkCm02Link::updateState(tmgr_trace_iterator_t triggered, /* Find out which of my iterators was triggered, and react accordingly */ if (triggered == p_speed.event) { updateBandwidth(value, date); - if (tmgr_trace_event_free(triggered)) - p_speed.event = NULL; + tmgr_trace_event_unref(&p_speed.event); } else if (triggered == p_latEvent) { updateLatency(value, date); - if (tmgr_trace_event_free(triggered)) - p_latEvent = NULL; + tmgr_trace_event_unref(&p_latEvent); } else if (triggered == p_stateEvent) { if (value > 0) turnOn(); else { - lmm_constraint_t cnst = getConstraint(); lmm_variable_t var = NULL; lmm_element_t elem = NULL; turnOff(); - while ((var = lmm_get_var_from_cnst(getModel()->getMaxminSystem(), cnst, &elem))) { + while ((var = lmm_get_var_from_cnst(getModel()->getMaxminSystem(), getConstraint(), &elem))) { Action *action = static_cast( lmm_variable_id(var) ); if (action->getState() == SURF_ACTION_RUNNING || @@ -579,17 +576,14 @@ void NetworkCm02Link::updateState(tmgr_trace_iterator_t triggered, } } } - if (tmgr_trace_event_free(triggered)) - p_stateEvent = NULL; + tmgr_trace_event_unref(&p_stateEvent); } else { - XBT_CRITICAL("Unknown event ! \n"); - xbt_abort(); + xbt_die("Unknown event!\n"); } XBT_DEBUG - ("There were a resource state event, need to update actions related to the constraint (%p)", + ("There was a resource state event, need to update actions related to the constraint (%p)", getConstraint()); - return; } void NetworkCm02Link::updateBandwidth(double value, double date){ diff --git a/src/surf/trace_mgr.cpp b/src/surf/trace_mgr.cpp index 151532127b..4726680d24 100644 --- a/src/surf/trace_mgr.cpp +++ b/src/surf/trace_mgr.cpp @@ -468,11 +468,10 @@ void tmgr_finalize(void) xbt_dict_free(&trace_list); } -int tmgr_trace_event_free(tmgr_trace_iterator_t trace_event) +void tmgr_trace_event_unref(tmgr_trace_iterator_t *trace_event) { - if (trace_event->free_me) { - xbt_free(trace_event); - return 1; + if ((*trace_event)->free_me) { + xbt_free(*trace_event); + *trace_event = nullptr; } - return 0; } diff --git a/src/surf/trace_mgr.hpp b/src/surf/trace_mgr.hpp index a6af8e0c94..d4115ab681 100644 --- a/src/surf/trace_mgr.hpp +++ b/src/surf/trace_mgr.hpp @@ -83,11 +83,11 @@ XBT_PUBLIC(void) tmgr_trace_free(tmgr_trace_t trace); /** * \brief Free a trace event structure * - * This function frees a trace_event if it can be freed, ie, if it has the free_me flag set to 1. This flag indicates whether the structure is still used somewhere or not. - * \param trace_event Trace event structure - * \return 1 if the structure was freed, 0 otherwise + * This function frees a trace_event if it can be freed, ie, if it has the free_me flag set to 1. + * This flag indicates whether the structure is still used somewhere or not. + * When the structure is freed, the argument is set to nullptr */ -XBT_PUBLIC(int) tmgr_trace_event_free(tmgr_trace_iterator_t trace_event); +XBT_PUBLIC(void) tmgr_trace_event_unref(tmgr_trace_iterator_t *trace_event); XBT_PUBLIC(void) tmgr_finalize(void); -- 2.20.1