/* Define only for SimGrid benchmarking purposes */
//#define TIME_BENCH_PER_SR /* this aims at measuring the time spent in each scheduling round per each thread. The code is thus run in sequential to bench separately each SSR */
//#define TIME_BENCH_AMDAHL /* this aims at measuring the porting of time that could be parallelized at maximum (to get the optimal speedup by applying the amdahl law). */
/* Define only for SimGrid benchmarking purposes */
//#define TIME_BENCH_PER_SR /* this aims at measuring the time spent in each scheduling round per each thread. The code is thus run in sequential to bench separately each SSR */
//#define TIME_BENCH_AMDAHL /* this aims at measuring the porting of time that could be parallelized at maximum (to get the optimal speedup by applying the amdahl law). */
xbt_dict_t registered_functions;
smx_creation_func_t create_process_function;
void_pfn_smxprocess_t_smxprocess_t kill_process_function;
xbt_dict_t registered_functions;
smx_creation_func_t create_process_function;
void_pfn_smxprocess_t_smxprocess_t kill_process_function;
#ifdef TIME_BENCH_AMDAHL
xbt_os_timer_t timer_seq; /* used to bench the sequential and parallel parts of the simulation, if requested to */
xbt_os_timer_t timer_par;
#endif
#ifdef TIME_BENCH_AMDAHL
xbt_os_timer_t timer_seq; /* used to bench the sequential and parallel parts of the simulation, if requested to */
xbt_os_timer_t timer_par;
#endif
/******************************** Exceptions *********************************/
/** @brief Ask to the provided simix process to raise the provided exception */
/******************************** Exceptions *********************************/
/** @brief Ask to the provided simix process to raise the provided exception */
surf_action_t surf_exec; /* The Surf execution action encapsulated */
} execution; /* Possibly parallel execution */
surf_action_t surf_exec; /* The Surf execution action encapsulated */
} execution; /* Possibly parallel execution */
void SIMIX_ctx_thread_factory_init(smx_context_factory_t *factory);
void SIMIX_ctx_sysv_factory_init(smx_context_factory_t *factory);
void SIMIX_ctx_raw_factory_init(smx_context_factory_t *factory);
void SIMIX_ctx_thread_factory_init(smx_context_factory_t *factory);
void SIMIX_ctx_sysv_factory_init(smx_context_factory_t *factory);
void SIMIX_ctx_raw_factory_init(smx_context_factory_t *factory);