X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/554145f555b981fd5760349c5910f169055babec..7edfb13279f2fded41bac9dece85360d0c43a9a7:/src/mc/mc_transition.c diff --git a/src/mc/mc_transition.c b/src/mc/mc_transition.c index 3d37e46e54..e4587a34c4 100644 --- a/src/mc/mc_transition.c +++ b/src/mc/mc_transition.c @@ -11,8 +11,7 @@ mc_transition_t MC_trans_isend_new(smx_rdv_t rdv) trans->type = mc_isend; trans->process = SIMIX_process_self(); trans->isend.rdv = rdv; - trans->name = bprintf("[%s][%s] iSend (%p)", trans->process->smx_host->name, - trans->process->name, trans); + trans->name = bprintf("[%s]\t iSend (%p)", trans->process->smx_host->name, trans); return trans; } @@ -24,8 +23,7 @@ mc_transition_t MC_trans_irecv_new(smx_rdv_t rdv) trans->type = mc_irecv; trans->process = SIMIX_process_self(); trans->irecv.rdv = rdv; - trans->name = bprintf("[%s][%s] iRecv (%p)", trans->process->smx_host->name, - trans->process->name, trans); + trans->name = bprintf("[%s]\t iRecv (%p)", trans->process->smx_host->name, trans); return trans; } @@ -37,8 +35,7 @@ mc_transition_t MC_trans_wait_new(smx_comm_t comm) trans->type = mc_wait; trans->process = SIMIX_process_self(); trans->wait.comm = comm; - trans->name = bprintf("[%s][%s] Wait (%p)", trans->process->smx_host->name, - trans->process->name, trans); + trans->name = bprintf("[%s]\t Wait (%p)", trans->process->smx_host->name, trans); return trans; } @@ -50,8 +47,7 @@ mc_transition_t MC_trans_test_new(smx_comm_t comm) trans->type = mc_test; trans->process = SIMIX_process_self(); trans->test.comm = comm; - trans->name = bprintf("[%s][%s] Test (%p)", trans->process->smx_host->name, - trans->process->name, trans); + trans->name = bprintf("[%s]\t Test (%p)", trans->process->smx_host->name, trans); return trans; } @@ -63,8 +59,7 @@ mc_transition_t MC_trans_waitany_new(xbt_dynar_t comms) trans->type = mc_waitany; trans->process = SIMIX_process_self(); trans->waitany.comms = comms; - trans->name = bprintf("[%s][%s] WaitAny (%p)", trans->process->smx_host->name, - trans->process->name, trans); + trans->name = bprintf("[%s]\t WaitAny (%p)", trans->process->smx_host->name, trans); return trans; } @@ -76,8 +71,7 @@ mc_transition_t MC_trans_random_new(int value) trans->type = mc_random; trans->process = SIMIX_process_self(); trans->random.value = value; - trans->name = bprintf("[%s][%s] Random %d (%p)", trans->process->smx_host->name, - trans->process->name, value, trans); + trans->name = bprintf("[%s]\t Random %d (%p)", trans->process->smx_host->name, value, trans); return trans; } @@ -189,16 +183,15 @@ void MC_trans_intercept_test(smx_comm_t comm) */ void MC_trans_intercept_waitany(xbt_dynar_t comms) { - unsigned int cursor; + unsigned int index = 0; + smx_comm_t comm = NULL; mc_transition_t trans = NULL; mc_state_t current_state = NULL; - smx_comm_t comm = 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)); - xbt_dynar_foreach(comms, cursor, comm){ + 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); @@ -222,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); @@ -253,7 +246,7 @@ void MC_trans_compute_enabled(xbt_setset_set_t enabled, xbt_setset_set_t transit /* WaitAny transitions are enabled if any of it's communications has both a sender and a receiver */ case mc_waitany: - xbt_dynar_foreach(trans->waitany.comms, index, comm){ + xbt_dynar_foreach(trans->waitany.comms, index, comm){ if(comm->src_proc && comm->dst_proc){ xbt_setset_set_insert(enabled, trans); DEBUG1("Transition %p is enabled for next state", trans); @@ -284,7 +277,13 @@ int MC_transition_depend(mc_transition_t t1, mc_transition_t t2) if(t1->type != t2->type) return FALSE; + +/* if(t1->type == mc_isend && t2->type == mc_irecv) + return FALSE; + if(t1->type == mc_irecv && t2->type == mc_isend) + return FALSE;*/ + if(t1->type == mc_random || t2->type == mc_random) return FALSE; @@ -306,6 +305,7 @@ int MC_transition_depend(mc_transition_t t1, mc_transition_t t2) && t1->wait.comm->dst_buff != t2->wait.comm->dst_buff && t2->wait.comm->dst_buff != t1->wait.comm->src_buff) return FALSE; + return TRUE; } \ No newline at end of file