From f2596052d9ab41f5f880c4d733796ac979e31515 Mon Sep 17 00:00:00 2001 From: cristianrosa Date: Thu, 5 Aug 2010 09:01:33 +0000 Subject: [PATCH] Improve handling of WaitAny transitions. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8106 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/mc/mc_transition.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/mc/mc_transition.c b/src/mc/mc_transition.c index 363dd90ece..366e525c65 100644 --- a/src/mc/mc_transition.c +++ b/src/mc/mc_transition.c @@ -183,15 +183,19 @@ void MC_trans_intercept_test(smx_comm_t comm) */ void MC_trans_intercept_waitany(xbt_dynar_t comms) { + unsigned int index = 0; + smx_comm_t comm = NULL; mc_transition_t trans = NULL; mc_state_t current_state = 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, index, 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(); @@ -211,7 +215,7 @@ void MC_trans_intercept_random(int min, int max) MC_SET_RAW_MEM; current_state = (mc_state_t) xbt_fifo_get_item_content(xbt_fifo_get_first_item(mc_stack)); - for(i=min; i <= max; i++){ + for(i=min; i <= max; i++){ trans = MC_trans_random_new(i); xbt_setset_set_insert(current_state->created_transitions, trans); xbt_setset_set_insert(current_state->transitions, trans); -- 2.20.1