- xbt_assert0((host != NULL), "Invalid parameters");
- xbt_assert0((host->data == NULL), "Data already set");
+ unsigned int cpt;
+ smx_process_arg_t arg;
+ xbt_dynar_foreach(host->auto_restart_processes,cpt,arg) {
+
+ smx_process_t process;
+
+ XBT_DEBUG("Restarting Process %s(%s) right now", arg->argv[0], arg->hostname);
+ if (simix_global->create_process_function) {
+ simix_global->create_process_function(&process,
+ arg->argv[0],
+ arg->code,
+ NULL,
+ arg->hostname,
+ arg->kill_time,
+ arg->argc,
+ arg->argv,
+ arg->properties,
+ arg->auto_restart);
+ }
+ else {
+ simcall_process_create(&process,
+ arg->argv[0],
+ arg->code,
+ NULL,
+ arg->hostname,
+ arg->kill_time,
+ arg->argc,
+ arg->argv,
+ arg->properties,
+ arg->auto_restart);
+
+ }
+ }
+ xbt_dynar_reset(host->auto_restart_processes);
+}
+
+void SIMIX_host_autorestart(smx_host_t host)
+{
+ if(simix_global->autorestart)
+ simix_global->autorestart(host);
+ else
+ xbt_die("No function for simix_global->autorestart");
+}
+
+void SIMIX_host_set_data(u_smx_scalar_t *args)
+{
+ smx_host_t host = args[0].p;
+ void *data = args[1].p;
+ xbt_assert((host != NULL), "Invalid parameters");
+ xbt_assert((host->data == NULL), "Data already set");