- while ((process = xbt_swag_extract(processes))) {
- old_context = smx_current_context;
- smx_current_context = process->context;
- smx_ctx_sysv_resume(smx_current_context);
- smx_current_context = old_context;
- }
+ while ((process = xbt_swag_extract(processes)))
+ smx_ctx_sysv_resume(process->context);
+}
+
+void smx_ctx_sysv_resume_parallel(smx_context_t context)
+{
+ xbt_os_thread_set_extra_data(context);
+ int rv = swapcontext(&maestro_context->uc, &((smx_ctx_sysv_t) context)->uc);
+
+ xbt_assert0((rv == 0), "Context swapping failure");