Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
prefer automatic memory management
[simgrid.git] / src / surf / cpu_interface.cpp
index ace74b4..c4ef192 100644 (file)
@@ -138,7 +138,7 @@ void Cpu::set_speed_trace(tmgr_trace_t trace)
 {
   xbt_assert(speed_.event == nullptr, "Cannot set a second speed trace to Host %s", host_->get_cname());
 
-  speed_.event = future_evt_set->add_trace(trace, this);
+  speed_.event = future_evt_set.add_trace(trace, this);
 }
 
 
@@ -166,22 +166,25 @@ void CpuAction::update_remains_lazy(double now)
   set_last_value(get_variable()->get_value());
 }
 
-simgrid::xbt::signal<void(simgrid::surf::CpuAction*)> CpuAction::on_state_change;
+simgrid::xbt::signal<void(simgrid::surf::CpuAction*, kernel::resource::Action::State)> CpuAction::on_state_change;
 
 void CpuAction::suspend(){
-  on_state_change(this);
+  Action::State previous = get_state();
+  on_state_change(this, previous);
   Action::suspend();
 }
 
 void CpuAction::resume(){
-  on_state_change(this);
+  Action::State previous = get_state();
+  on_state_change(this, previous);
   Action::resume();
 }
 
 void CpuAction::set_state(Action::State state)
 {
+  Action::State previous = get_state();
   Action::set_state(state);
-  on_state_change(this);
+  on_state_change(this, previous);
 }
 
 /** @brief returns a list of all CPUs that this action is using */