X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f89671e0bd7450461d70d5ced6079123e73c2a63..5089a0a98b27f5eeee62321dff4f025f1648f025:/src/s4u/s4u_Host.cpp diff --git a/src/s4u/s4u_Host.cpp b/src/s4u/s4u_Host.cpp index 459c2900c1..c2e01693f4 100644 --- a/src/s4u/s4u_Host.cpp +++ b/src/s4u/s4u_Host.cpp @@ -9,7 +9,6 @@ #include "simgrid/s4u/Exec.hpp" #include "simgrid/s4u/VirtualMachine.hpp" #include "src/plugins/vm/VirtualMachineImpl.hpp" -#include "src/simix/smx_private.hpp" #include "src/surf/HostImpl.hpp" #include @@ -97,14 +96,15 @@ void Host::turn_on() void Host::turn_off() { if (is_on()) { - kernel::actor::simcall([this] { + kernel::actor::ActorImpl* self = SIMIX_process_self(); + kernel::actor::simcall([this, self] { for (VirtualMachine* const& vm : vm::VirtualMachineImpl::allVms_) if (vm->get_pm() == this) { vm->shutdown(); vm->turn_off(); } this->pimpl_cpu->turn_off(); - this->pimpl_->turn_off(); + this->pimpl_->turn_off(self); on_state_change(*this); }); @@ -154,7 +154,7 @@ void Host::route_to(Host* dest, std::vector& links, double* latency) std::vector linkImpls; this->route_to(dest, linkImpls, latency); for (kernel::resource::LinkImpl* const& l : linkImpls) - links.push_back(&l->piface_); + links.push_back(l->get_iface()); } /** @brief Just like Host::routeTo, but filling an array of link implementations */ @@ -311,7 +311,7 @@ std::unordered_map const& Host::get_mounted_storages() if (mounts_ == nullptr) { mounts_ = new std::unordered_map(); for (auto const& m : this->pimpl_->storage_) { - mounts_->insert({m.first, &m.second->piface_}); + mounts_->insert({m.first, m.second->get_iface()}); } } return *mounts_; @@ -428,7 +428,7 @@ xbt_dict_t sg_host_get_mounted_storage_list(sg_host_t host) for (auto const& elm : host->get_mounted_storages()) { const char* mount_name = elm.first.c_str(); sg_storage_t storage = elm.second; - xbt_dict_set(res, mount_name, (void*)storage->get_cname(), nullptr); + xbt_dict_set(res, mount_name, (void*)storage->get_cname()); } return res; @@ -550,7 +550,7 @@ xbt_dict_t sg_host_get_properties(sg_host_t host) if (props == nullptr) return nullptr; for (auto const& elm : *props) { - xbt_dict_set(as_dict, elm.first.c_str(), xbt_strdup(elm.second.c_str()), nullptr); + xbt_dict_set(as_dict, elm.first.c_str(), xbt_strdup(elm.second.c_str())); } return as_dict; } @@ -654,18 +654,13 @@ void sg_host_get_actor_list(sg_host_t host, xbt_dynar_t whereto) sg_host_t sg_host_self() { - smx_actor_t process = SIMIX_process_self(); - return (process == nullptr) ? nullptr : process->get_host(); + return SIMIX_is_maestro() ? nullptr : SIMIX_process_self()->get_host(); } /* needs to be public and without simcall for exceptions and logging events */ const char* sg_host_self_get_name() { - sg_host_t host = sg_host_self(); - if (host == nullptr || SIMIX_process_self() == simix_global->maestro_process) - return ""; - - return host->get_cname(); + return SIMIX_is_maestro() ? "" : SIMIX_process_self()->get_host()->get_cname(); } double sg_host_load(sg_host_t host)