Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
normalize the handling of speed traces in CpuTi
authorMartin Quinson <martin.quinson@loria.fr>
Wed, 3 Feb 2016 20:41:14 +0000 (21:41 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Wed, 3 Feb 2016 20:59:44 +0000 (21:59 +0100)
src/surf/cpu_ti.cpp
src/surf/cpu_ti.hpp
src/surf/surfxml_private.h

index 63701e2..2f10bfc 100644 (file)
@@ -499,21 +499,7 @@ void CpuTiModel::addTraces()
     xbt_assert(cpu, "Host %s undefined", elm);
     xbt_assert(trace, "Trace %s undefined", trace_name);
 
-    XBT_DEBUG("Add speed trace: %s to CPU(%s)", trace_name, elm);
-    if (cpu->p_availTrace)
-      delete cpu->p_availTrace;
-
-    cpu->p_availTrace = new CpuTiTgmr(trace, cpu->m_speedScale);
-
-    /* add a fake trace event if periodicity == 0 */
-    if (trace && xbt_dynar_length(trace->s_list.event_list) > 1) {
-      s_tmgr_event_t val;
-      xbt_dynar_get_cpy(trace->s_list.event_list,
-                        xbt_dynar_length(trace->s_list.event_list) - 1, &val);
-      if (val.delta == 0) {
-        cpu->set_speed_trace(tmgr_empty_trace_new());
-      }
-    }
+    cpu->set_speed_trace(trace);
   }
 }
 
@@ -557,6 +543,23 @@ CpuTi::~CpuTi()
   delete p_availTrace;
   delete p_actionSet;
 }
+void CpuTi::set_speed_trace(tmgr_trace_t trace)
+{
+  if (p_availTrace)
+    delete p_availTrace;
+
+  p_availTrace = new CpuTiTgmr(trace, m_speedScale);
+
+  /* add a fake trace event if periodicity == 0 */
+  if (trace && xbt_dynar_length(trace->s_list.event_list) > 1) {
+    s_tmgr_event_t val;
+    xbt_dynar_get_cpy(trace->s_list.event_list,
+                      xbt_dynar_length(trace->s_list.event_list) - 1, &val);
+    if (val.delta == 0) {
+      p_speedEvent = future_evt_set->add_trace(tmgr_empty_trace_new(), 0.0, this);
+    }
+  }
+}
 
 void CpuTi::updateState(tmgr_trace_iterator_t event_type,
                         double value, double date)
index 9c46c46..a9820c4 100644 (file)
@@ -118,6 +118,8 @@ public:
         int initiallyOn, tmgr_trace_t stateTrace) ;
   ~CpuTi();
 
+  void set_speed_trace(tmgr_trace_t trace);
+
   void updateState(tmgr_trace_iterator_t event_type, double value, double date) override;
   void updateActionsFinishTime(double now);
   bool isUsed() override;
index 43a6c59..dc69ca1 100644 (file)
@@ -8,8 +8,10 @@
 
 #include "surf/surfxml_parse.h"
 
-void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect);
+SG_BEGIN_DECL()
 
+void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect);
 
+SG_END_DECL()
 
 #endif /* SRC_SURF_SURFXML_PRIVATE_H_ */