- smx_process_arg_t arg = new simgrid::simix::ProcessArg();
- arg->name = name;
- arg->code = std::move(code);
- arg->data = data;
- arg->host = host;
- arg->kill_time = kill_time;
- arg->properties = properties;
- arg->auto_restart = auto_restart;
-
- if (host->isOff() && not xbt_dict_get_or_null(watched_hosts_lib, host->getCname())) {
- xbt_dict_set(watched_hosts_lib, host->getCname(), host, nullptr);
- XBT_DEBUG("Push host %s to watched_hosts_lib because state == SURF_RESOURCE_OFF", host->getCname());
+ simgrid::kernel::actor::ProcessArg* arg =
+ new simgrid::kernel::actor::ProcessArg(name, code, data, host, kill_time, nullptr, auto_restart);
+ arg->properties.reset(properties, [](decltype(properties)) {});
+
+ if (host->isOff() && watched_hosts.find(host->get_cname()) == watched_hosts.end()) {
+ watched_hosts.insert(host->get_cname());
+ XBT_DEBUG("Push host %s to watched_hosts because state == SURF_RESOURCE_OFF", host->get_cname());