Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simix_global->create_process_function always exists
[simgrid.git] / src / simix / smx_host.cpp
index f27e7ac..a835e87 100644 (file)
@@ -50,46 +50,29 @@ namespace simgrid {
       xbt_dynar_free(&boot_processes);
       xbt_swag_free(process_list);
     }
-  }
-}
-
-/** @brief Start the host if it is off */
-void SIMIX_host_on(sg_host_t h)
-{
-  smx_host_priv_t host = sg_host_simix(h);
-
-  xbt_assert((host != nullptr), "Invalid parameters");
 
-  if (h->isOff()) {
-    simgrid::surf::HostImpl* surf_host = h->extension<simgrid::surf::HostImpl>();
-    surf_host->turnOn();
-
-    unsigned int cpt;
-    smx_process_arg_t arg;
-    xbt_dynar_foreach(host->boot_processes,cpt,arg) {
-      XBT_DEBUG("Booting Process %s(%s) right now",
-        arg->name.c_str(), arg->hostname);
-      if (simix_global->create_process_function) {
+    /** Re-starts all the actors that are marked as restartable.
+     *
+     * Weird things will happen if you turn on an host that is already on. S4U is fool-proof, not this.
+     */
+    void Host::turnOn()
+    {
+      unsigned int cpt;
+      smx_process_arg_t arg;
+      xbt_dynar_foreach(boot_processes,cpt,arg) {
+        XBT_DEBUG("Booting Process %s(%s) right now", arg->name.c_str(), arg->hostname);
         simix_global->create_process_function(arg->name.c_str(),
-                                              arg->code,
-                                              nullptr,
-                                              arg->hostname,
-                                              arg->kill_time,
-                                              arg->properties,
-                                              arg->auto_restart,
-                                              nullptr);
-      } else {
-        simcall_process_create(arg->name.c_str(),
-                               arg->code,
-                               nullptr,
-                               arg->hostname,
-                               arg->kill_time,
-                               arg->properties,
-                               arg->auto_restart);
+            arg->code,
+            nullptr,
+            arg->hostname,
+            arg->kill_time,
+            arg->properties,
+            arg->auto_restart,
+            nullptr);
       }
     }
-  }
-}
+
+}} // namespaces
 
 /** @brief Stop the host if it is on */
 void SIMIX_host_off(sg_host_t h, smx_actor_t issuer)
@@ -180,13 +163,8 @@ void SIMIX_host_autorestart(sg_host_t host)
   xbt_dynar_foreach (process_list, cpt, arg) {
 
     XBT_DEBUG("Restarting Process %s(%s) right now", arg->name.c_str(), arg->hostname);
-    if (simix_global->create_process_function) {
-      simix_global->create_process_function(arg->name.c_str(), arg->code, nullptr, arg->hostname, arg->kill_time,
-                                            arg->properties, arg->auto_restart, nullptr);
-    } else {
-      simcall_process_create(arg->name.c_str(), arg->code, nullptr, arg->hostname, arg->kill_time, arg->properties,
-                             arg->auto_restart);
-    }
+    simix_global->create_process_function(arg->name.c_str(), arg->code, nullptr, arg->hostname, arg->kill_time,
+        arg->properties, arg->auto_restart, nullptr);
   }
   xbt_dynar_reset(process_list);
 }