From 31f804b9533a9dba6a6ec1263400fb0ffed7c99b Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Tue, 12 Sep 2017 22:03:55 +0200 Subject: [PATCH] ContextBoost: use BOOST_VERSION instead of simgrid-specific HAVE_BOOST_CONTEXTS. --- src/kernel/context/ContextBoost.cpp | 12 ++++++------ src/kernel/context/ContextBoost.hpp | 4 +++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/kernel/context/ContextBoost.cpp b/src/kernel/context/ContextBoost.cpp index 2b0bc634bb..4c3958c3a0 100644 --- a/src/kernel/context/ContextBoost.cpp +++ b/src/kernel/context/ContextBoost.cpp @@ -154,7 +154,7 @@ BoostContext::BoostContext(std::function code, smx_context_usable_stack_size, smx_ctx_boost_wrapper); } else { -#if HAVE_BOOST_CONTEXTS == 1 +#if BOOST_VERSION < 105600 this->fc_ = new boost::context::fcontext_t(); #endif if (BoostContext::maestro_context_ == nullptr) @@ -164,7 +164,7 @@ BoostContext::BoostContext(std::function code, BoostContext::~BoostContext() { -#if HAVE_BOOST_CONTEXTS == 1 +#if BOOST_VERSION < 105600 if (not this->stack_) delete this->fc_; #endif @@ -178,7 +178,7 @@ BoostContext::~BoostContext() void BoostContext::resume() { SIMIX_context_set_current(this); -#if HAVE_BOOST_CONTEXTS == 1 +#if BOOST_VERSION < 105600 boost::context::jump_fcontext(maestro_context_->fc_, this->fc_, reinterpret_cast(this)); #else boost::context::jump_fcontext(&maestro_context_->fc_, this->fc_, reinterpret_cast(this)); @@ -202,7 +202,7 @@ void BoostSerialContext::suspend() next_context = static_cast(maestro_context_); } SIMIX_context_set_current(static_cast(next_context)); -#if HAVE_BOOST_CONTEXTS == 1 +#if BOOST_VERSION < 105600 boost::context::jump_fcontext(this->fc_, next_context->fc_, reinterpret_cast(next_context)); #else boost::context::jump_fcontext(&this->fc_, next_context->fc_, reinterpret_cast(next_context)); @@ -233,7 +233,7 @@ void BoostParallelContext::suspend() } SIMIX_context_set_current(static_cast(next_context)); -#if HAVE_BOOST_CONTEXTS == 1 +#if BOOST_VERSION < 105600 boost::context::jump_fcontext(this->fc_, next_context->fc_, reinterpret_cast(next_context)); #else boost::context::jump_fcontext(&this->fc_, next_context->fc_, reinterpret_cast(next_context)); @@ -255,7 +255,7 @@ void BoostParallelContext::resume() workers_context_[worker_id] = worker_context; SIMIX_context_set_current(this); -#if HAVE_BOOST_CONTEXTS == 1 +#if BOOST_VERSION < 105600 boost::context::jump_fcontext(worker_context->fc_, this->fc_, reinterpret_cast(this)); #else boost::context::jump_fcontext(&worker_context->fc_, this->fc_, reinterpret_cast(this)); diff --git a/src/kernel/context/ContextBoost.hpp b/src/kernel/context/ContextBoost.hpp index e8a34c2229..9a2a2fb7b4 100644 --- a/src/kernel/context/ContextBoost.hpp +++ b/src/kernel/context/ContextBoost.hpp @@ -6,6 +6,8 @@ #ifndef SIMGRID_SIMIX_BOOST_CONTEXT_HPP #define SIMGRID_SIMIX_BOOST_CONTEXT_HPP +#include +#include #include #include @@ -34,7 +36,7 @@ protected: // static static unsigned long process_index_; static BoostContext* maestro_context_; -#if HAVE_BOOST_CONTEXTS == 1 +#if BOOST_VERSION < 105600 boost::context::fcontext_t* fc_ = nullptr; #else boost::context::fcontext_t fc_; -- 2.20.1