X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/72d32c4e88a57f4786f62fec48a1bfa454adbff9..9afa0d0db01da2ae64e48fb594cc87c186dde192:/src/kernel/resource/StandardLinkImpl.cpp diff --git a/src/kernel/resource/StandardLinkImpl.cpp b/src/kernel/resource/StandardLinkImpl.cpp index 6648c23d45..9df40d0924 100644 --- a/src/kernel/resource/StandardLinkImpl.cpp +++ b/src/kernel/resource/StandardLinkImpl.cpp @@ -1,11 +1,10 @@ -/* Copyright (c) 2013-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2013-2023. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ #include -#include "src/kernel/EngineImpl.hpp" #include "src/kernel/resource/StandardLinkImpl.hpp" #include @@ -37,12 +36,15 @@ void StandardLinkImpl::Deleter::operator()(resource::StandardLinkImpl* link) con void StandardLinkImpl::destroy() { s4u::Link::on_destruction(piface_); + piface_.on_this_destruction(piface_); delete this; } constexpr kernel::lmm::Constraint::SharingPolicy to_maxmin_policy(s4u::Link::SharingPolicy policy) { switch (policy) { + case s4u::Link::SharingPolicy::WIFI: + return kernel::lmm::Constraint::SharingPolicy::WIFI; case s4u::Link::SharingPolicy::NONLINEAR: return kernel::lmm::Constraint::SharingPolicy::NONLINEAR; case s4u::Link::SharingPolicy::FATPIPE: @@ -60,11 +62,11 @@ void StandardLinkImpl::set_sharing_policy(s4u::Link::SharingPolicy policy, const void StandardLinkImpl::latency_check(double latency) const { - static double last_warned_latency = sg_surf_precision; + static double last_warned_latency = sg_precision_timing; if (latency != 0.0 && latency < last_warned_latency) { - XBT_WARN("Latency for link %s is smaller than surf/precision (%g < %g)." - " For more accuracy, consider setting \"--cfg=surf/precision:%g\".", - get_cname(), latency, sg_surf_precision, latency); + XBT_WARN("Latency for link %s is smaller than precision/timing (%g < %g)." + " For more accuracy, consider setting \"--cfg=precision/timing:%g\".", + get_cname(), latency, sg_precision_timing, latency); last_warned_latency = latency; } } @@ -79,7 +81,8 @@ void StandardLinkImpl::turn_on() { if (not is_on()) { Resource::turn_on(); - s4u::Link::on_state_change(piface_); + s4u::Link::on_onoff(piface_); + piface_.on_this_onoff(piface_); } } @@ -87,17 +90,9 @@ void StandardLinkImpl::turn_off() { if (is_on()) { Resource::turn_off(); - s4u::Link::on_state_change(piface_); - - const kernel::lmm::Element* elem = nullptr; - double now = EngineImpl::get_clock(); - while (const auto* var = get_constraint()->get_variable(&elem)) { - Action* action = var->get_id(); - if (action->get_state() == Action::State::INITED || action->get_state() == Action::State::STARTED) { - action->set_finish_time(now); - action->set_state(Action::State::FAILED); - } - } + s4u::Link::on_onoff(piface_); + piface_.on_this_onoff(piface_); + cancel_actions(); } } @@ -113,6 +108,7 @@ void StandardLinkImpl::seal() void StandardLinkImpl::on_bandwidth_change() const { s4u::Link::on_bandwidth_change(piface_); + piface_.on_this_bandwidth_change(piface_); } void StandardLinkImpl::set_bandwidth_profile(profile::Profile* profile) @@ -131,12 +127,4 @@ void StandardLinkImpl::set_latency_profile(profile::Profile* profile) } } -void StandardLinkImpl::set_concurrency_limit(int limit) const -{ - if (limit != -1) { - get_constraint()->reset_concurrency_maximum(); - } - get_constraint()->set_concurrency_limit(limit); -} - } // namespace simgrid::kernel::resource