/** @brief Executes all the processes to run (in parallel if possible). */
void SIMIX_context_runall(void)
{
- if (!xbt_dynar_is_empty(simix_global->process_to_run))
- simix_global->context_factory->run_all();
+ simix_global->context_factory->run_all();
}
/** @brief returns the current running context */
namespace context {
class Context;
- class ContextFactory;
XBT_PUBLIC_CLASS ContextFactory {
private:
} 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;
void RawContextFactory::run_all_serial()
{
+ 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);
raw_process_index = 1;
#endif
} else {
// Serial:
- smx_process_t first_process =
- xbt_dynar_get_as(simix_global->process_to_run, 0, smx_process_t);
- sysv_process_index = 1;
- SerialUContext* context =
+ 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);
+ sysv_process_index = 1;
+ SerialUContext* context =
static_cast<SerialUContext*>(first_process->context);
- context->resume();
+ context->resume();
}
}