Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[trace_mgr] cosmetics and simplifications
authorMartin Quinson <martin.quinson@loria.fr>
Tue, 26 Jan 2016 09:24:46 +0000 (10:24 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Tue, 26 Jan 2016 13:14:07 +0000 (14:14 +0100)
src/surf/cpu_cas01.cpp
src/surf/cpu_ti.cpp
src/surf/host_ptask_L07.cpp
src/surf/network_cm02.cpp
src/surf/trace_mgr.cpp
src/surf/trace_mgr.hpp

index ae557e6..ebf1f87 100644 (file)
@@ -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");
   }
index d422089..5450aad 100644 (file)
@@ -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)
index 1d230ef..9ba3c56 100644 (file)
@@ -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()
index aa99623..514c883 100644 (file)
@@ -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<Action*>( 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){
index 1515321..4726680 100644 (file)
@@ -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;
 }
index a6af8e0..d4115ab 100644 (file)
@@ -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);