if (i < simix_global->process_to_run.size()) {
/* execute the next process */
XBT_DEBUG("Run next process");
if (i < simix_global->process_to_run.size()) {
/* execute the next process */
XBT_DEBUG("Run next process");
} else {
/* all processes were run, return to maestro */
XBT_DEBUG("No more process to run");
} else {
/* all processes were run, return to maestro */
XBT_DEBUG("No more process to run");
}
SIMIX_context_set_current(next_context);
swapcontext(&this->uc_, &next_context->uc_);
}
SIMIX_context_set_current(next_context);
swapcontext(&this->uc_, &next_context->uc_);
// Store the number of my containing body in os-thread-specific area :
xbt_os_thread_set_specific(sysv_worker_id_key, (void*) worker_id);
// Get my current soul:
// Store the number of my containing body in os-thread-specific area :
xbt_os_thread_set_specific(sysv_worker_id_key, (void*) worker_id);
// Get my current soul:
// Write down that this soul is hosted in that body (for now)
sysv_workers_context[worker_id] = worker_context;
// Retrieve the system-level info that fuels this soul:
// Write down that this soul is hosted in that body (for now)
sysv_workers_context[worker_id] = worker_context;
// Retrieve the system-level info that fuels this soul:
// Write in simix that I switched my soul
SIMIX_context_set_current(this);
// Actually do that using the relevant library call:
// Write in simix that I switched my soul
SIMIX_context_set_current(this);
// Actually do that using the relevant library call: