X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e95fe51a7a87a360f8e6c1b27e14fbf60b0078b8..0d638e1070f68f783639288b8f0799679fad87cf:/src/kernel/lmm/System.cpp diff --git a/src/kernel/lmm/System.cpp b/src/kernel/lmm/System.cpp index 872361322a..5aa108295a 100644 --- a/src/kernel/lmm/System.cpp +++ b/src/kernel/lmm/System.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2004-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2004-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. */ @@ -29,6 +29,11 @@ Element::Element(Constraint* constraint, Variable* variable, double cweight) int Element::get_concurrency() const { + // just to try having the computation of the concurrency + if (constraint->get_sharing_policy() == Constraint::SharingPolicy::WIFI) { + return 1; + } + // Ignore element with weight less than one (e.g. cross-traffic) return (consumption_weight >= 1) ? 1 : 0; // There are other alternatives, but they will change the behavior of the model.. @@ -57,7 +62,7 @@ void Element::increase_concurrency(bool check_limit) "Concurrency limit overflow!"); } -System* System::build(const std::string& solver_name, bool selective_update) +System* System::build(std::string_view solver_name, bool selective_update) { System* system = nullptr; if (solver_name == "bmf") { @@ -756,7 +761,7 @@ double Constraint::get_usage() const void Constraint::set_sharing_policy(SharingPolicy policy, const s4u::NonLinearResourceCb& cb) { - xbt_assert(policy == SharingPolicy::NONLINEAR || not cb, + xbt_assert(policy == SharingPolicy::NONLINEAR || policy == SharingPolicy::WIFI || not cb, "Invalid sharing policy for constraint. Callback should be used with NONLINEAR sharing policy"); sharing_policy_ = policy; dyn_constraint_cb_ = cb;