- do {
- DEBUG0("New Schedule Round");
- SIMIX_context_runall(simix_global->process_to_run);
- while ((req = SIMIX_request_pop())) {
- DEBUG1("Handling request %p", req);
- SIMIX_request_pre(req);
+ XBT_DEBUG("New Schedule Round; size(queue)=%lu",
+ xbt_dynar_length(simix_global->process_to_run));
+#ifdef TIME_BENCH
+ smx_ctx_raw_new_sr();
+#endif
+ while (!xbt_dynar_is_empty(simix_global->process_to_run)) {
+ XBT_DEBUG("New Sub-Schedule Round; size(queue)=%lu",
+ xbt_dynar_length(simix_global->process_to_run));
+ SIMIX_process_runall();
+ xbt_dynar_three_way_partition(simix_global->process_that_ran, process_syscall_color);
+ xbt_dynar_foreach(simix_global->process_that_ran, iter, process) {
+ if (process->simcall.call != SIMCALL_NONE) {
+ SIMIX_simcall_pre(&process->simcall, 0);
+ }