X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3580c1f2e5172b721449d0e79c72241bd012152a..4c206c2ab2737c12672b8bc7aab7b0ea2cc99484:/src/kernel/context/ContextBoost.cpp diff --git a/src/kernel/context/ContextBoost.cpp b/src/kernel/context/ContextBoost.cpp index 21dc80d097..49cbec80a8 100644 --- a/src/kernel/context/ContextBoost.cpp +++ b/src/kernel/context/ContextBoost.cpp @@ -15,16 +15,9 @@ namespace kernel { namespace context { // BoostContextFactory - -BoostContextFactory::BoostContextFactory() : SwappedContextFactory("BoostContextFactory") {} - -BoostContextFactory::~BoostContextFactory() = default; - smx_context_t BoostContextFactory::create_context(std::function code, void_pfn_smxprocess_t cleanup_func, smx_actor_t process) { - if (parallel_) - return this->new_context(std::move(code), cleanup_func, process, this); return this->new_context(std::move(code), cleanup_func, process, this); } @@ -111,41 +104,6 @@ void BoostContext::swap_into(SwappedContext* to_) #endif } -void BoostContext::stop() -{ - Context::stop(); - throw StopRequest(); -} - -// ParallelBoostContext -void ParallelBoostContext::suspend() -{ - boost::optional next_work = parmap_->next(); - SwappedContext* next_context; - if (next_work) { - XBT_DEBUG("Run next process"); - next_context = static_cast(next_work.get()->context_); - } else { - XBT_DEBUG("No more processes to run"); - next_context = workers_context_[worker_id_]; - } - - Context::set_current(next_context); - this->swap_into(next_context); -} - -void ParallelBoostContext::resume() -{ - worker_id_ = threads_working_.fetch_add(1, std::memory_order_relaxed); - - SwappedContext* worker_context = static_cast(self()); - workers_context_[worker_id_] = worker_context; - - Context::set_current(this); - worker_context->swap_into(this); -} - - XBT_PRIVATE ContextFactory* boost_factory() { XBT_VERB("Using Boost contexts. Welcome to the 21th century.");