" retq\n"
);
#else
+
+/* If you implement raw contextes for other processors, don't forget to
+ update the definition of HAVE_RAWCTX in buildtools/Cmake/AddTests.cmake */
+
raw_stack_t raw_makecontext(char* malloced_stack, int stack_size,
rawctx_entry_point_t entry_point, void* arg) {
THROW_UNIMPLEMENTED;
static void smx_ctx_raw_suspend(smx_context_t context)
{
- smx_current_context = (smx_context_t)maestro_raw_context;
+ SIMIX_context_set_current((smx_context_t) maestro_raw_context);
raw_swapcontext(
&((smx_ctx_raw_t) context)->stack_top,
((smx_ctx_raw_t) context)->old_stack_top);
static void smx_ctx_raw_resume(smx_process_t process)
{
smx_ctx_raw_t context = (smx_ctx_raw_t)process->context;
- smx_current_context = (smx_context_t)context;
+ SIMIX_context_set_current((smx_context_t) context);
raw_swapcontext(
&((smx_ctx_raw_t) context)->old_stack_top,
((smx_ctx_raw_t) context)->stack_top);
XBT_VERB("Time SSR thread %u = %lf (max %lf)", cursor, time_thread_ssr[cursor], tmax);
time_wasted_ssr += tmax - time_thread_ssr[cursor];
}
-
- xbt_dynar_reset(processes);
}
void smx_ctx_raw_new_sr(void);
XBT_DEBUG("Schedule item %u of %lu",cursor,xbt_dynar_length(processes));
smx_ctx_raw_resume(process);
}
- xbt_dynar_reset(processes);
}
#endif
#ifdef CONTEXT_THREADS
xbt_parmap_apply(parmap, (void_f_pvoid_t)smx_ctx_raw_resume, processes);
#endif
- xbt_dynar_reset(processes);
}
static smx_context_t smx_ctx_raw_self_parallel(void)
{
- return smx_current_context;
+ return SIMIX_context_get_current();
}
static int smx_ctx_raw_get_thread_id(){