-#if HAVE_THREAD_CONTEXTS
- if (BoostContext::parallel_) {
- BoostContext::threads_working_ = 0;
- xbt_parmap_apply(BoostContext::parmap_,
- [](void* arg) {
- smx_process_t process = static_cast<smx_process_t>(arg);
- BoostContext* context = static_cast<BoostContext*>(process->context);
- return context->resume();
- },
- simix_global->process_to_run);
- } else
-#endif
- {
- if (xbt_dynar_is_empty(simix_global->process_to_run))
- return;
- smx_process_t first_process =
- xbt_dynar_get_as(simix_global->process_to_run, 0, smx_process_t);
- BoostContext::process_index_ = 1;
- /* execute the first process */
- static_cast<BoostContext*>(first_process->context)->resume();
- }