+ if (smx_ctx_thread_sem) /* parallel run */
+ xbt_os_sem_acquire(smx_ctx_thread_sem);
+}
+
+static void smx_ctx_thread_runall_serial(void)
+{
+ smx_process_t process;
+ unsigned int cursor;
+
+ xbt_dynar_foreach(simix_global->process_to_run, cursor, process) {
+ xbt_os_sem_release(((smx_ctx_thread_t) process->context)->begin);
+ xbt_os_sem_acquire(((smx_ctx_thread_t) process->context)->end);
+ }
+}
+
+static void smx_ctx_thread_runall_parallel(void)
+{
+ unsigned int index;
+ smx_process_t process;
+
+ xbt_dynar_foreach(simix_global->process_to_run, index, process)
+ xbt_os_sem_release(((smx_ctx_thread_t) process->context)->begin);
+
+ xbt_dynar_foreach(simix_global->process_to_run, index, process) {
+ xbt_os_sem_acquire(((smx_ctx_thread_t) process->context)->end);
+ }