-/* Copyright (c) 2004-2017. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-2018. 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. */
XBT_DEBUG("Setting selective_update_active flag to %d", selective_update_active);
- keep_track = nullptr;
variable_mallocator =
xbt_mallocator_new(65536, System::variable_mallocator_new_f, System::variable_mallocator_free_f, nullptr);
solve_fun = &lmm_solve;
cnst_free(cnst);
xbt_mallocator_free(variable_mallocator);
+ delete modified_set_;
}
void System::cnst_free(Constraint* cnst)
delete static_cast<Variable*>(var);
}
-Variable* System::variable_new(simgrid::surf::Action* id, double sharing_weight, double bound,
+Variable* System::variable_new(simgrid::kernel::resource::Action* id, double sharing_weight, double bound,
int number_of_constraints)
{
XBT_IN("(sys=%p, id=%p, weight=%f, bound=%f, num_cons =%d)", this, id, sharing_weight, bound, number_of_constraints);
}
static inline void saturated_variable_set_update(ConstraintLight* cnst_light_tab,
- const dyn_light_t& saturated_constraints, lmm_system_t sys)
+ const dyn_light_t& saturated_constraints, System* sys)
{
/* Add active variables (i.e. variables that need to be set) from the set of constraints to saturate
* (cnst_light_tab)*/
cnst.usage = elem.consumption_weight / elem.variable->sharing_weight;
elem.make_active();
- simgrid::surf::Action* action = static_cast<simgrid::surf::Action*>(elem.variable->id);
- if (keep_track && not action->is_linked())
- keep_track->push_back(*action);
+ simgrid::kernel::resource::Action* action = static_cast<simgrid::kernel::resource::Action*>(elem.variable->id);
+ if (modified_set_ && not action->isLinkedModifiedSet())
+ modified_set_->push_back(*action);
}
}
XBT_DEBUG("Constraint '%d' usage: %f remaining: %f concurrency: %i<=%i<=%i", cnst.id_int, cnst.usage,
delete[] cnst_light_tab;
}
-void lmm_solve(lmm_system_t sys)
+void lmm_solve(System* sys)
{
sys->solve();
}
update_modified_set(var->cnsts[0].constraint);
}
-void Variable::initialize(simgrid::surf::Action* id_value, double sharing_weight_value, double bound_value,
+void Variable::initialize(simgrid::kernel::resource::Action* id_value, double sharing_weight_value, double bound_value,
int number_of_constraints, unsigned visited_value)
{
id = id_value;
if (not numelem)
return;
- lmm_element_t elem = &cnstr->disabled_element_set.front();
+ Element* elem = &cnstr->disabled_element_set.front();
// Cannot use foreach loop, because System::enable_var() will modify disabled_element_set.. within the loop
while (numelem-- && elem) {
- lmm_element_t nextelem;
+ Element* nextelem;
if (elem->disabled_element_set_hook.is_linked()) {
auto iter = std::next(cnstr->disabled_element_set.iterator_to(*elem));
nextelem = iter != std::end(cnstr->disabled_element_set) ? &*iter : nullptr;