X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2bd9a37bbb72eac4ed613b3d6953aba6555e2e92..08e5e85e11083a3c354ce0ccb8e854c89af1dfe3:/src/mc/mc_state.c diff --git a/src/mc/mc_state.c b/src/mc/mc_state.c index 09b523906f..bb53fa512d 100644 --- a/src/mc/mc_state.c +++ b/src/mc/mc_state.c @@ -226,10 +226,13 @@ smx_simcall_t MC_state_get_request(mc_state_t state, int *value) MC_EACH_SIMIX_PROCESS(process, procstate = &state->proc_status[process->pid]; - if (procstate->state == MC_INTERLEAVE - || procstate->state == MC_MORE_INTERLEAVE) { - if (MC_process_is_enabled(process)) { - switch (process->simcall.call) { + if (procstate->state != MC_INTERLEAVE + && procstate->state != MC_MORE_INTERLEAVE) + continue; + if (!MC_process_is_enabled(process)) + continue; + + switch (process->simcall.call) { case SIMCALL_COMM_WAITANY: *value = -1; while (procstate->interleave_count < @@ -307,8 +310,7 @@ smx_simcall_t MC_state_get_request(mc_state_t state, int *value) *value = 0; return &process->simcall; break; - } - } + } );