Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change default default value for contexts/parallel_threshold.
[simgrid.git] / src / simix / smx_context_raw.c
index 239d0a7..8a9a6f5 100644 (file)
 #  include <valgrind/valgrind.h>
 #endif                          /* HAVE_VALGRIND_VALGRIND_H */
 
-#ifdef _XBT_WIN32
-#include "win32_ucontext.h"
-#else
-#include "ucontext.h"
-#endif
-
 typedef char * raw_stack_t;
 typedef void (*rawctx_entry_point_t)(void *);
 
@@ -142,6 +136,10 @@ __asm__ (
    "   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;
@@ -244,7 +242,7 @@ static void smx_ctx_raw_free(smx_context_t context)
 
 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);
@@ -266,7 +264,7 @@ static void smx_ctx_raw_wrapper(smx_ctx_raw_t context)
 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);
@@ -365,7 +363,7 @@ static void smx_ctx_raw_runall_parallel(xbt_dynar_t 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(){