Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Default is not to use sleep-set to agree with existing tests
[simgrid.git] / src / kernel / lmm / System.cpp
index 8723613..5aa1082 100644 (file)
@@ -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;