Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
This was not compiling when sizeof(unsigned long) != sizeof(void*)
[simgrid.git] / src / simix / BoostContext.cpp
index b66da92..9972e78 100644 (file)
@@ -38,7 +38,7 @@ public:
   void resume();
 };
 
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
 class BoostParallelContext : public BoostContext {
 public:
   BoostParallelContext(std::function<void()> code,
@@ -55,7 +55,7 @@ public:
 
 bool                BoostContext::parallel_        = false;
 xbt_parmap_t        BoostContext::parmap_          = nullptr;
-unsigned long       BoostContext::threads_working_ = 0;
+uintptr_t       BoostContext::threads_working_ = 0;
 xbt_os_thread_key_t BoostContext::worker_id_key_;
 unsigned long       BoostContext::process_index_   = 0;
 BoostContext*       BoostContext::maestro_context_ = nullptr;
@@ -66,7 +66,7 @@ BoostContextFactory::BoostContextFactory()
 {
   BoostContext::parallel_ = SIMIX_context_is_parallel();
   if (BoostContext::parallel_) {
-#ifndef CONTEXT_THREADS
+#ifndef HAVE_THREAD_CONTEXTS
     xbt_die("No thread support for parallel context execution");
 #else
     int nthreads = SIMIX_context_get_nthreads();
@@ -81,7 +81,7 @@ BoostContextFactory::BoostContextFactory()
 
 BoostContextFactory::~BoostContextFactory()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   if (BoostContext::parmap_) {
     xbt_parmap_destroy(BoostContext::parmap_);
     BoostContext::parmap_ = nullptr;
@@ -95,7 +95,7 @@ smx_context_t BoostContextFactory::create_context(std::function<void()>  code,
 {
   BoostContext* context = nullptr;
   if (BoostContext::parallel_)
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
     context = this->new_context<BoostParallelContext>(
       std::move(code), cleanup_func, process);
 #else
@@ -109,7 +109,7 @@ smx_context_t BoostContextFactory::create_context(std::function<void()>  code,
 
 void BoostContextFactory::run_all()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   if (BoostContext::parallel_) {
     BoostContext::threads_working_ = 0;
     xbt_parmap_apply(BoostContext::parmap_,
@@ -161,7 +161,7 @@ BoostContext::BoostContext(std::function<void()> code,
                       smx_context_usable_stack_size,
                       smx_ctx_boost_wrapper);
   } else {
-    #if HAVE_BOOST_CONTEXT == 1
+    #if HAVE_BOOST_CONTEXTS == 1
     this->fc_ = new boost::context::fcontext_t();
     #endif
     if (BoostContext::maestro_context_ == nullptr)
@@ -171,7 +171,7 @@ BoostContext::BoostContext(std::function<void()> code,
 
 BoostContext::~BoostContext()
 {
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
   if (!this->stack_)
     delete this->fc_;
 #endif
@@ -185,13 +185,13 @@ BoostContext::~BoostContext()
 void BoostContext::resume()
 {
   SIMIX_context_set_current(this);
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
   boost::context::jump_fcontext(
     maestro_context_->fc_, this->fc_,
     (intptr_t) this);
 #else
   boost::context::jump_fcontext(
-    &boost_maestro_context_->fc_, this->fc_,
+    &maestro_context_->fc_, this->fc_,
     (intptr_t) this);
 #endif
 }
@@ -215,7 +215,7 @@ void BoostSerialContext::suspend()
       maestro_context_);
   }
   SIMIX_context_set_current((smx_context_t) next_context);
-  #if HAVE_BOOST_CONTEXT == 1
+  #if HAVE_BOOST_CONTEXTS == 1
   boost::context::jump_fcontext(
     this->fc_, next_context->fc_, (intptr_t) next_context);
   #else
@@ -232,7 +232,7 @@ void BoostSerialContext::stop()
 
 // BoostParallelContext
 
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
 
 void BoostParallelContext::suspend()
 {
@@ -245,14 +245,14 @@ void BoostParallelContext::suspend()
   }
   else {
     XBT_DEBUG("No more processes to run");
-    unsigned long worker_id =
-      (unsigned long) xbt_os_thread_get_specific(worker_id_key_);
+    uintptr_t worker_id =
+      (uintptr_t) xbt_os_thread_get_specific(worker_id_key_);
     next_context = static_cast<BoostParallelContext*>(
       workers_context_[worker_id]);
   }
 
   SIMIX_context_set_current((smx_context_t) next_context);
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
   boost::context::jump_fcontext(
     this->fc_, next_context->fc_, (intptr_t)next_context);
 #else
@@ -269,7 +269,7 @@ void BoostParallelContext::stop()
 
 void BoostParallelContext::resume()
 {
-  unsigned long worker_id = __sync_fetch_and_add(&threads_working_, 1);
+  uintptr_t worker_id = __sync_fetch_and_add(&threads_working_, 1);
   xbt_os_thread_set_specific(worker_id_key_, (void*) worker_id);
 
   BoostParallelContext* worker_context =
@@ -277,7 +277,7 @@ void BoostParallelContext::resume()
   workers_context_[worker_id] = worker_context;
 
   SIMIX_context_set_current(this);
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
   boost::context::jump_fcontext(
     worker_context->fc_, this->fc_, (intptr_t) this);
 #else