Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Display errno on error.
[simgrid.git] / src / surf / ptask_L07.cpp
index ebad9d3..75f1027 100644 (file)
@@ -25,7 +25,6 @@ void surf_host_model_init_ptask_L07()
   all_existing_models.push_back(surf_host_model);
 }
 
-
 namespace simgrid {
 namespace surf {
 
@@ -146,6 +145,7 @@ L07Action::L07Action(kernel::resource::Model* model, int host_nb, sg_host_t* hos
   int nb_link = 0;
   int nb_used_host = 0; /* Only the hosts with something to compute (>0 flops) are counted) */
   double latency = 0.0;
+  this->set_last_update();
 
   this->hostList_->reserve(host_nb);
   for (int i = 0; i < host_nb; i++) {
@@ -315,10 +315,13 @@ void CpuL07::apply_event(tmgr_trace_event_t triggered, double value)
     tmgr_trace_event_unref(&speed_.event);
 
   } else if (triggered == state_event_) {
-    if (value > 0)
-      turn_on();
-    else
-      turn_off();
+    if (value > 0) {
+      if (is_off()) {
+        XBT_VERB("Restart processes on host %s", get_host()->get_cname());
+        get_host()->turn_on();
+      }
+    } else
+      get_host()->turn_off();
     tmgr_trace_event_unref(&state_event_);
 
   } else {