lmm_on_disabled_var(sys, elem.constraint);
}
- // Check if we can enable new variables going through the constraints where var was.
- // Do it after removing all elements, so the first disabled variables get priority over those with smaller requirement
- for (s_lmm_element_t& elem : var->cnsts) {
- if (xbt_swag_size(&(elem.constraint->disabled_element_set)))
- lmm_on_disabled_var(sys, elem.constraint);
- }
-
var->cnsts.clear();
lmm_check_concurrency(sys);
//A priori not a big performance issue, but we might do better by calling lmm_update_modified_set within the for loops
// (after doing the first for enabling==1, and before doing the last for disabling==1)
void lmm_enable_var(lmm_system_t sys, lmm_variable_t var){
- xbt_assert(lmm_can_enable_var(var));
+ xbt_assert(not XBT_LOG_ISENABLED(surf_maxmin, xbt_log_priority_debug) || lmm_can_enable_var(var));
var->sharing_weight = var->staged_weight;
var->staged_weight = 0;
return xbt_swag_belongs(cnst, &(sys->active_constraint_set));
}
-inline lmm_constraint_t lmm_get_first_active_constraint(lmm_system_t sys)
-{
- return (lmm_constraint_t)xbt_swag_getFirst(&(sys->active_constraint_set));
-}
-
-inline lmm_constraint_t lmm_get_next_active_constraint(lmm_system_t sys, lmm_constraint_t cnst)
-{
- return (lmm_constraint_t)xbt_swag_getNext(cnst, (sys->active_constraint_set).offset);
-}
-
/** \brief Update the constraint set propagating recursively to other constraints so the system should not be entirely
* computed.
*
{
void* _elem;
- //TODOLATER: Why lmm_modified_set has been changed in git version 2392B5157...? Looks equivalent logically and less obvious..
xbt_swag_foreach(_elem, &cnst->enabled_element_set) {
lmm_variable_t var = ((lmm_element_t)_elem)->variable;
for (s_lmm_element_t const& elem : var->cnsts) {