Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
I think I just killed a simcall
[simgrid.git] / src / simix / smx_host.cpp
index a1461a2..eca8a19 100644 (file)
@@ -59,14 +59,12 @@ namespace simgrid {
     {
       for (auto arg : boot_processes) {
         XBT_DEBUG("Booting Process %s(%s) right now", arg->name.c_str(), arg->host->cname());
-        simix_global->create_process_function(arg->name.c_str(),
-            arg->code,
-            nullptr,
-            arg->host,
-            arg->kill_time,
-            arg->properties,
-            arg->auto_restart,
-            nullptr);
+        smx_actor_t actor = simix_global->create_process_function(arg->name.c_str(), arg->code, nullptr, arg->host,
+                                                                  arg->properties, nullptr);
+        if (arg->kill_time >= 0)
+          simcall_process_set_kill_time(actor, arg->kill_time);
+        if (arg->auto_restart)
+          simcall_process_auto_restart_set(actor, arg->auto_restart);
       }
     }
 
@@ -145,8 +143,12 @@ void SIMIX_host_autorestart(sg_host_t host)
 
   for (auto arg : process_list) {
     XBT_DEBUG("Restarting Process %s@%s right now", arg->name.c_str(), arg->host->cname());
-    simix_global->create_process_function(arg->name.c_str(), arg->code, nullptr, arg->host, arg->kill_time,
-        arg->properties, arg->auto_restart, nullptr);
+    smx_actor_t actor = simix_global->create_process_function(arg->name.c_str(), arg->code, nullptr, arg->host,
+                                                              arg->properties, nullptr);
+    if (arg->kill_time >= 0)
+      simcall_process_set_kill_time(actor, arg->kill_time);
+    if (arg->auto_restart)
+      simcall_process_auto_restart_set(actor, arg->auto_restart);
   }
   process_list.clear();
 }