- char *req_str = NULL;
- smx_req_t req = NULL;
-
- do {
- SIMIX_context_runall(simix_global->process_to_run);
- while((req = SIMIX_request_pop())){
- if(!SIMIX_request_is_visible(req))
- SIMIX_request_pre(req);
- else if(req->call == REQ_COMM_WAITANY)
- THROW_UNIMPLEMENTED;
- else if(XBT_LOG_ISENABLED(mc_global, xbt_log_priority_debug)){
- req_str = MC_request_to_string(req);
- DEBUG1("Got: %s", req_str);
- xbt_free(req_str);
- }
+ smx_process_t process;
+ smx_req_t req;
+ unsigned int iter;
+
+ while (!xbt_dynar_is_empty(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);