From: cristianrosa Date: Thu, 27 May 2010 07:59:51 +0000 (+0000) Subject: Transform transitions of type "mc_waitany" into multiple "wait" transitions. X-Git-Tag: v3_5~1007 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/554145f555b981fd5760349c5910f169055babec Transform transitions of type "mc_waitany" into multiple "wait" transitions. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7801 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/src/mc/mc_transition.c b/src/mc/mc_transition.c index 99cf291b5e..3d37e46e54 100644 --- a/src/mc/mc_transition.c +++ b/src/mc/mc_transition.c @@ -189,15 +189,20 @@ void MC_trans_intercept_test(smx_comm_t comm) */ void MC_trans_intercept_waitany(xbt_dynar_t comms) { - mc_transition_t trans=NULL; + unsigned int cursor; + mc_transition_t trans = NULL; mc_state_t current_state = NULL; + smx_comm_t comm = NULL; + if(!mc_replay_mode){ MC_SET_RAW_MEM; - trans = MC_trans_waitany_new(comms); current_state = (mc_state_t) xbt_fifo_get_item_content(xbt_fifo_get_first_item(mc_stack)); - xbt_setset_set_insert(current_state->created_transitions, trans); - xbt_setset_set_insert(current_state->transitions, trans); + xbt_dynar_foreach(comms, cursor, comm){ + trans = MC_trans_wait_new(comm); + xbt_setset_set_insert(current_state->created_transitions, trans); + xbt_setset_set_insert(current_state->transitions, trans); + } MC_UNSET_RAW_MEM; } SIMIX_process_yield(); @@ -215,8 +220,8 @@ void MC_trans_intercept_random(int min, int max) mc_state_t current_state = NULL; if(!mc_replay_mode){ MC_SET_RAW_MEM; - current_state = (mc_state_t) - xbt_fifo_get_item_content(xbt_fifo_get_first_item(mc_stack)); + current_state = (mc_state_t) + xbt_fifo_get_item_content(xbt_fifo_get_first_item(mc_stack)); for(i=min; i <= max; i++){ trans = MC_trans_random_new(i); xbt_setset_set_insert(current_state->created_transitions, trans);