Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix compilation when ucontextes are not available
authorChristophe Thiéry <christopho128@gmail.com>
Fri, 15 Apr 2011 09:38:23 +0000 (11:38 +0200)
committerChristophe Thiéry <christopho128@gmail.com>
Fri, 15 Apr 2011 09:38:23 +0000 (11:38 +0200)
src/simix/smx_context.c
src/simix/smx_context_raw.c

index 9a526f5..e5e48ce 100644 (file)
@@ -40,9 +40,22 @@ void SIMIX_context_mod_init(void)
       (*smx_factory_initializer_to_use)(&(simix_global->context_factory));
     }
     else { /* use the factory specified by --cfg=contexts/factory:value */
       (*smx_factory_initializer_to_use)(&(simix_global->context_factory));
     }
     else { /* use the factory specified by --cfg=contexts/factory:value */
-      if (smx_context_factory_name == NULL || !strcmp(smx_context_factory_name, "ucontext")) {
+
+      if (smx_context_factory_name == NULL) {
+        /* use the default factory */
+#ifdef CONTEXT_UCONTEXT
+        SIMIX_ctx_sysv_factory_init(&simix_global->context_factory);
+#else
+        SIMIX_ctx_thread_factory_init(&simix_global->context_factory);
+#endif
+      }
+      else if (!strcmp(smx_context_factory_name, "ucontext")) {
         /* use ucontext */
         /* use ucontext */
+#ifdef CONTEXT_UCONTEXT
         SIMIX_ctx_sysv_factory_init(&simix_global->context_factory);
         SIMIX_ctx_sysv_factory_init(&simix_global->context_factory);
+#else
+        xbt_die("The ontext factory 'ucontext' unavailable on your system");
+#endif
       }
       else if (!strcmp(smx_context_factory_name, "thread")) {
        /* use os threads (either pthreads or windows ones) */
       }
       else if (!strcmp(smx_context_factory_name, "thread")) {
        /* use os threads (either pthreads or windows ones) */
index 239d0a7..9327b59 100644 (file)
 #  include <valgrind/valgrind.h>
 #endif                          /* HAVE_VALGRIND_VALGRIND_H */
 
 #  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 *);
 
 typedef char * raw_stack_t;
 typedef void (*rawctx_entry_point_t)(void *);