Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change StateChanged callback signatures
[simgrid.git] / src / surf / plugins / energy.cpp
index 9784cbb..4fd94ac 100644 (file)
@@ -8,8 +8,8 @@
 #include "../cpu_cas01.hpp"
 
 /** @addtogroup SURF_plugin_energy
- *    
- *  
+ *
+ *
  *  BlaBla energy
  */
 
@@ -31,7 +31,7 @@ static void energyCpuDestructedCallback(CpuPtr cpu){
   surf_energy->erase(cpuIt);
 }
 
-static void energyCpuActionStateChangedCallback(CpuActionPtr action){
+static void energyCpuActionStateChangedCallback(CpuActionPtr action, e_surf_action_state_t old, e_surf_action_state_t cur){
   CpuPtr cpu  = getActionCpu(action);
   CpuEnergyPtr cpu_energy = (*surf_energy)[cpu];
 
@@ -54,6 +54,12 @@ static void energyCpuActionStateChangedCallback(CpuActionPtr action){
   }
 }
 
+static void sg_energy_plugin_exit()
+{
+  delete surf_energy;
+  surf_energy = NULL;
+}
+
 /** \ingroup SURF_plugin_energy
  * \brief Enable energy plugin
  * \details Enable energy plugin to get joules consumption of each cpu.
@@ -64,7 +70,7 @@ void sg_energy_plugin_init() {
     surf_callback_connect(cpuCreatedCallbacks, energyCpuCreatedCallback);
     surf_callback_connect(cpuDestructedCallbacks, energyCpuDestructedCallback);
     surf_callback_connect(cpuActionStateChangedCallbacks, energyCpuActionStateChangedCallback);
-
+    surf_callback_connect(surfExitCallbacks, sg_energy_plugin_exit);
   }
 }
 
@@ -106,7 +112,7 @@ double CpuEnergy::getCurrentWattsValue(double cpu_load)
                                                cpu->getName());*/
 
     /* retrieve the power values associated with the current pstate */
-    xbt_dynar_t current_power_values = xbt_dynar_get_as(power_range_list, static_cast<CpuCas01Ptr>(cpu)->m_pstate, xbt_dynar_t);
+    xbt_dynar_t current_power_values = xbt_dynar_get_as(power_range_list, static_cast<CpuCas01Ptr>(cpu)->getPState(), xbt_dynar_t);
 
     /* min_power corresponds to the idle power (cpu load = 0) */
     /* max_power is the power consumed at 100% cpu load       */