-void lmm_check_concurrency(lmm_system_t sys){
- void* _cnst;
- void* _elem;
- lmm_element_t elem;
- lmm_constraint_t cnst;
- int concurrency;
- if (XBT_LOG_ISENABLED(surf_maxmin, xbt_log_priority_debug)) {
-
- xbt_swag_foreach(_cnst, &(sys->constraint_set)) {
- cnst = (lmm_constraint_t) _cnst;
- concurrency=0;
- if(cnst->concurrency_limit<0)
- continue;
- xbt_swag_foreach(_elem, &(cnst->element_set)) {
- elem = (lmm_element_t)_elem;
- if (elem->variable->weight > 0)
- concurrency++;
- else {
- //We should have staged variables only if conccurency is reached
- xbt_assert(elem->variable->staged_weight==0 || (cnst->concurrency_limit>0 && cnst->concurrency_limit < concurrency+elem->variable->concurrency_share),"should not have staged variable!");
- }
- }
- xbt_assert(cnst->concurrency_limit<0 || cnst->concurrency_limit >= concurrency,"concurrency check failed!");
- xbt_assert(cnst->concurrency_current == concurrency, "concurrency_current is out-of-date!");
- }
-
- }
-}
-