X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6ee7e9c2e455536ab817ae0136acfbb53822eecd..399a7727d537d5225f2c48613b1c67b50f31b9f2:/src/mc/mc_global.c?ds=sidebyside diff --git a/src/mc/mc_global.c b/src/mc/mc_global.c index 48b6872b05..1142da7c2a 100644 --- a/src/mc/mc_global.c +++ b/src/mc/mc_global.c @@ -76,15 +76,18 @@ int MC_random(int min, int max) */ void MC_wait_for_requests(void) { - smx_req_t req = NULL; - - do { - SIMIX_context_runall(simix_global->process_to_run); - while((req = SIMIX_request_pop())){ - if(!MC_request_is_visible(req)) - SIMIX_request_pre(req, 0); + smx_process_t process; + smx_req_t req; + unsigned int iter; + + while (xbt_dynar_length(simix_global->process_to_run)) { + SIMIX_process_runall(); + xbt_dynar_foreach(simix_global->process_that_ran, iter, process) { + req = &process->request; + if (req->call != REQ_NO_REQ && !MC_request_is_visible(req)) + SIMIX_request_pre(req, 0); } - } while (xbt_dynar_length(simix_global->process_to_run)); + } } int MC_deadlock_check()