X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/210da270d0339479db706757d8c836621bb138c9..afd3a47e007a0f91d206cc2e47b69b4b86970fc2:/src/s4u/s4u_host.cpp diff --git a/src/s4u/s4u_host.cpp b/src/s4u/s4u_host.cpp index 10eec1db8d..29d104a225 100644 --- a/src/s4u/s4u_host.cpp +++ b/src/s4u/s4u_host.cpp @@ -26,7 +26,6 @@ XBT_LOG_EXTERNAL_CATEGORY(surf_route); std::unordered_map host_list; // FIXME: move it to Engine -int MSG_HOST_LEVEL = -1; int USER_HOST_LEVEL = -1; namespace simgrid { @@ -40,6 +39,7 @@ namespace s4u { simgrid::xbt::signal Host::onCreation; simgrid::xbt::signal Host::onDestruction; simgrid::xbt::signal Host::onStateChange; +simgrid::xbt::signal Host::onSpeedChange; Host::Host(const char* name) : name_(name) @@ -102,7 +102,7 @@ Host *Host::current(){ void Host::turnOn() { if (isOff()) { - simgrid::simix::kernelImmediate([&]{ + simgrid::simix::kernelImmediate([this] { this->extension()->turnOn(); this->pimpl_cpu->turnOn(); onStateChange(*this); @@ -113,7 +113,7 @@ void Host::turnOn() { void Host::turnOff() { if (isOn()) { smx_actor_t self = SIMIX_process_self(); - simgrid::simix::kernelImmediate([&] { + simgrid::simix::kernelImmediate([this, self] { SIMIX_host_off(this, self); onStateChange(*this); }); @@ -155,7 +155,7 @@ void Host::routeTo(Host* dest, std::vector* links, double* late XBT_CDEBUG(surf_route, "Route from '%s' to '%s' (latency: %f):", cname(), dest->cname(), (latency == nullptr ? -1 : *latency)); for (auto link : *links) - XBT_CDEBUG(surf_route, "Link %s", link->getName()); + XBT_CDEBUG(surf_route, "Link %s", link->cname()); } } @@ -179,7 +179,9 @@ boost::unordered_map const& Host::mountedStorages() { /** Get the properties assigned to a host */ xbt_dict_t Host::properties() { - return simgrid::simix::kernelImmediate([&] { return this->pimpl_->getProperties(); }); + return simgrid::simix::kernelImmediate([this] { + return this->pimpl_->getProperties(); + }); } /** Retrieve the property value (or nullptr if not set) */ @@ -187,13 +189,15 @@ const char*Host::property(const char*key) { return this->pimpl_->getProperty(key); } void Host::setProperty(const char*key, const char *value){ - simgrid::simix::kernelImmediate([&] { this->pimpl_->setProperty(key, value); }); + simgrid::simix::kernelImmediate([this, key, value] { + this->pimpl_->setProperty(key, value); + }); } /** Get the processes attached to the host */ xbt_swag_t Host::processes() { - return simgrid::simix::kernelImmediate([&]() { + return simgrid::simix::kernelImmediate([this] { return this->extension()->process_list; }); } @@ -201,7 +205,7 @@ xbt_swag_t Host::processes() /** Get the peak power of a host */ double Host::getPstateSpeedCurrent() { - return simgrid::simix::kernelImmediate([&] { + return simgrid::simix::kernelImmediate([this] { return this->pimpl_cpu->getPstateSpeedCurrent(); }); } @@ -209,7 +213,7 @@ double Host::getPstateSpeedCurrent() /** Get one power peak (in flops/s) of a host at a given pstate */ double Host::getPstateSpeed(int pstate_index) { - return simgrid::simix::kernelImmediate([&] { + return simgrid::simix::kernelImmediate([this, pstate_index] { return this->pimpl_cpu->getPstateSpeed(pstate_index); }); } @@ -226,7 +230,7 @@ int Host::coreCount() { /** @brief Set the pstate at which the host should run */ void Host::setPstate(int pstate_index) { - simgrid::simix::kernelImmediate([&](){ + simgrid::simix::kernelImmediate([this, pstate_index] { this->pimpl_cpu->setPState(pstate_index); }); } @@ -243,7 +247,9 @@ int Host::pstate() */ xbt_dict_t Host::mountedStoragesAsDict() { - return simgrid::simix::kernelImmediate([&] { return this->pimpl_->getMountedStorageList(); }); + return simgrid::simix::kernelImmediate([this] { + return this->pimpl_->getMountedStorageList(); + }); } /** @@ -253,7 +259,9 @@ xbt_dict_t Host::mountedStoragesAsDict() */ xbt_dynar_t Host::attachedStorages() { - return simgrid::simix::kernelImmediate([&] { return this->pimpl_->getAttachedStorageList(); }); + return simgrid::simix::kernelImmediate([this] { + return this->pimpl_->getAttachedStorageList(); + }); } } // namespace simgrid