X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7ad273d7c9193af5218240d976212f4aaa70f350..745de4b9b7e938a60ebc8a57286f795bd7ca112d:/src/surf/sg_platf.cpp diff --git a/src/surf/sg_platf.cpp b/src/surf/sg_platf.cpp index 49897a1f8e..3271fc0be0 100644 --- a/src/surf/sg_platf.cpp +++ b/src/surf/sg_platf.cpp @@ -65,20 +65,22 @@ void sg_platf_exit() { /** @brief Add an host to the current AS */ void sg_platf_new_host(sg_platf_host_cbarg_t args) { - simgrid::s4u::Host* host = routing_get_current()->createHost(args->id, &args->speed_per_pstate, args->core_amount); - - new simgrid::surf::HostImpl(host, mount_list); - xbt_lib_set(storage_lib, args->id, ROUTING_STORAGE_HOST_LEVEL, static_cast(mount_list)); - mount_list = nullptr; - + std::unordered_map props; if (args->properties) { xbt_dict_cursor_t cursor=nullptr; char *key,*data; xbt_dict_foreach (args->properties, cursor, key, data) - host->setProperty(key, data); + props[key] = data; xbt_dict_free(&args->properties); } + simgrid::s4u::Host* host = + routing_get_current()->createHost(args->id, &args->speed_per_pstate, args->core_amount, &props); + + host->pimpl_->storage_ = mount_list; + xbt_lib_set(storage_lib, args->id, ROUTING_STORAGE_HOST_LEVEL, static_cast(mount_list)); + mount_list = nullptr; + /* Change from the defaults */ if (args->state_trace) host->pimpl_cpu->setStateTrace(args->state_trace); @@ -89,8 +91,6 @@ void sg_platf_new_host(sg_platf_host_cbarg_t args) if (args->coord && strcmp(args->coord, "")) new simgrid::kernel::routing::vivaldi::Coords(host->pimpl_netcard, args->coord); - simgrid::s4u::Host::onCreation(*host); - if (TRACE_is_enabled() && TRACE_needs_platform()) sg_instr_new_host(*host); } @@ -555,10 +555,9 @@ void sg_platf_new_peer(sg_platf_peer_cbarg_t peer) std::vector speedPerPstate; speedPerPstate.push_back(peer->speed); - simgrid::s4u::Host* host = as->createHost(peer->id, &speedPerPstate, 1); + simgrid::s4u::Host* host = as->createHost(peer->id, &speedPerPstate, 1, nullptr); as->setPeerLink(host->pimpl_netcard, peer->bw_in, peer->bw_out, peer->coord); - simgrid::s4u::Host::onCreation(*host); /* Change from the defaults */ if (peer->state_trace)