- XBT_IN3("sys=%p, cnst=%p, min_usage=%f", sys, cnst, *min_usage);
- if (cnst->usage <= 0) {
- XBT_OUT;
- return;
- }
- if (cnst->remaining <= 0) {
- XBT_OUT;
- return;
- }
- if ((*min_usage < 0) || (*min_usage > cnst->remaining / cnst->usage)) {
- *min_usage = cnst->remaining / cnst->usage;
- LOG3(xbt_log_priority_trace,
- "min_usage=%f (cnst->remaining=%f, cnst->usage=%f)", *min_usage,
- cnst->remaining, cnst->usage);
- while ((useless_cnst =
- xbt_swag_getFirst(&(sys->saturated_constraint_set))))
- xbt_swag_remove(useless_cnst, &(sys->saturated_constraint_set));
-
- xbt_swag_insert(cnst, &(sys->saturated_constraint_set));
- } else if (*min_usage == cnst->remaining / cnst->usage) {
- xbt_swag_insert(cnst, &(sys->saturated_constraint_set));
+ if (*min_usage < 0 || *min_usage > usage) {
+ *min_usage = usage;
+ // XBT_HERE(" min_usage=%f (cnst->remaining / cnst->usage =%f)", *min_usage, usage);
+ saturated_constraint_set->data[0] = cnst_light_num;
+ saturated_constraint_set->pos = 1;
+ } else if (*min_usage == usage) {
+ if(saturated_constraint_set->pos == saturated_constraint_set->size) { // realloc the size
+ saturated_constraint_set->size *= 2;
+ saturated_constraint_set->data = realloc(saturated_constraint_set->data, (saturated_constraint_set->size) * sizeof(int));
+ }
+ saturated_constraint_set->data[saturated_constraint_set->pos] = cnst_light_num;
+ saturated_constraint_set->pos++;