"Refusing to add a second storage named \"%s\"", storage->id.c_str());
simgrid::surf::StorageType* stype;
- try {
- stype = storage_types.at(storage->type_id);
- } catch (std::out_of_range& unfound) {
+ auto st = storage_types.find(storage->type_id);
+ if (st != storage_types.end()) {
+ stype = st->second;
+ } else {
xbt_die("No storage type '%s'", storage->type_id.c_str());
}
void sg_platf_new_process(sg_platf_process_cbarg_t process)
{
+ std::map<std::string, std::string> props;
+ if (process->properties) {
+ for (auto elm : *process->properties)
+ props.insert({elm.first, elm.second});
+ delete process->properties;
+ }
sg_host_t host = sg_host_by_name(process->host);
if (not host) {
// The requested host does not exist. Do a nice message to the user
arg->data = nullptr;
arg->host = host;
arg->kill_time = kill_time;
- arg->properties = current_property_set;
+ arg->properties = &props;
host->extension<simgrid::simix::Host>()->boot_processes.push_back(arg);
arg->data = nullptr;
arg->host = host;
arg->kill_time = kill_time;
- arg->properties = current_property_set;
+ arg->properties = &props;
XBT_DEBUG("Process %s@%s will be started at time %f", arg->name.c_str(), arg->host->getCname(), start_time);
SIMIX_timer_set(start_time, [arg, auto_restart]() {
XBT_DEBUG("Starting Process %s(%s) right now", arg->name.c_str(), host->getCname());
smx_actor_t actor = simix_global->create_process_function(arg->name.c_str(), std::move(code), nullptr, host,
- current_property_set, nullptr);
+ arg->properties, nullptr);
/* The actor creation will fail if the host is currently dead, but that's fine */
if (actor != nullptr) {
auto as_cluster = static_cast<simgrid::kernel::routing::ClusterZone*>(current_routing);
if (as_cluster->privateLinks_.find(netpoint->id()) != as_cluster->privateLinks_.end())
- surf_parse_error("Host_link for '%s' is already defined!",hostlink->id);
+ surf_parse_error(std::string("Host_link for '") + hostlink->id + "' is already defined!");
XBT_DEBUG("Push Host_link for host '%s' to position %u", netpoint->cname(), netpoint->id());
as_cluster->privateLinks_.insert({netpoint->id(), {linkUp, linkDown}});