Host::Host()
{
- if (!Host::EXTENSION_ID.valid())
+ if (not Host::EXTENSION_ID.valid())
Host::EXTENSION_ID = s4u::Host::extension_create<simix::Host>();
simgrid::simix::ActorImpl act;
{
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);
}
}
return host->cname();
}
-void _SIMIX_host_free_process_arg(void *data)
-{
- smx_process_arg_t arg = *(static_cast<smx_process_arg_t*>(data));
- delete arg;
-}
/**
* \brief Add a process to the list of the processes that the host will restart when it comes back
* This function add a process to the list of the processes that will be restarted when the host comes
arg->properties = properties;
arg->auto_restart = auto_restart;
- if (host->isOff() && !xbt_dict_get_or_null(watched_hosts_lib, host->cname())) {
+ if (host->isOff() && not xbt_dict_get_or_null(watched_hosts_lib, host->cname())) {
xbt_dict_set(watched_hosts_lib, host->cname(), host, nullptr);
XBT_DEBUG("Push host %s to watched_hosts_lib because state == SURF_RESOURCE_OFF", host->cname());
}
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();
}
simgrid::kernel::activity::Exec *exec = new simgrid::kernel::activity::Exec(name, issuer->host);
/* set surf's action */
- if (!MC_is_active() && !MC_record_replay_is_active()) {
+ if (not MC_is_active() && not MC_record_replay_is_active()) {
exec->surf_exec = issuer->host->pimpl_cpu->execution_start(flops_amount);
exec->surf_exec->setData(exec);
}
/* set surf's synchro */
- if (!MC_is_active() && !MC_record_replay_is_active()) {
+ if (not MC_is_active() && not MC_record_replay_is_active()) {
exec->surf_exec = surf_host_model->executeParallelTask(host_nb, host_list_cpy, flops_amount, bytes_amount, rate);
exec->surf_exec->setData(exec);
if (timeout > 0) {