X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/268aabc05cf124783cd4972c9bc3d8b735ce5f95..7f63f68a348493dfd6c702c437aed38af4024789:/src/surf/network_cm02.cpp diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index aa99623e46..e8171bf5f5 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -374,6 +374,7 @@ Action *NetworkCm02Model::communicate(NetCard *src, NetCard *dst, break; } } + lmm_variable_concurrency_share_set(action->getVariable(),2); } action = new NetworkCm02Action(this, size, failed); @@ -554,22 +555,19 @@ void NetworkCm02Link::updateState(tmgr_trace_iterator_t triggered, /* Find out which of my iterators was triggered, and react accordingly */ if (triggered == p_speed.event) { updateBandwidth(value, date); - if (tmgr_trace_event_free(triggered)) - p_speed.event = NULL; + tmgr_trace_event_unref(&p_speed.event); } else if (triggered == p_latEvent) { updateLatency(value, date); - if (tmgr_trace_event_free(triggered)) - p_latEvent = NULL; + tmgr_trace_event_unref(&p_latEvent); } else if (triggered == p_stateEvent) { if (value > 0) turnOn(); else { - lmm_constraint_t cnst = getConstraint(); lmm_variable_t var = NULL; lmm_element_t elem = NULL; turnOff(); - while ((var = lmm_get_var_from_cnst(getModel()->getMaxminSystem(), cnst, &elem))) { + while ((var = lmm_get_var_from_cnst(getModel()->getMaxminSystem(), getConstraint(), &elem))) { Action *action = static_cast( lmm_variable_id(var) ); if (action->getState() == SURF_ACTION_RUNNING || @@ -579,17 +577,14 @@ void NetworkCm02Link::updateState(tmgr_trace_iterator_t triggered, } } } - if (tmgr_trace_event_free(triggered)) - p_stateEvent = NULL; + tmgr_trace_event_unref(&p_stateEvent); } else { - XBT_CRITICAL("Unknown event ! \n"); - xbt_abort(); + xbt_die("Unknown event!\n"); } XBT_DEBUG - ("There were a resource state event, need to update actions related to the constraint (%p)", + ("There was a resource state event, need to update actions related to the constraint (%p)", getConstraint()); - return; } void NetworkCm02Link::updateBandwidth(double value, double date){