From 4c206c2ab2737c12672b8bc7aab7b0ea2cc99484 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Sun, 6 Jan 2019 13:05:26 +0100 Subject: [PATCH] Kill the now useless ParallelRawContext and ParallelBoostContext They were a perfect duplication of ParallelUContext :( --- src/kernel/context/ContextBoost.cpp | 31 ------------------------ src/kernel/context/ContextBoost.hpp | 11 --------- src/kernel/context/ContextRaw.cpp | 34 --------------------------- src/kernel/context/ContextRaw.hpp | 11 --------- src/kernel/context/ContextSwapped.cpp | 1 - 5 files changed, 88 deletions(-) diff --git a/src/kernel/context/ContextBoost.cpp b/src/kernel/context/ContextBoost.cpp index 37a348195f..49cbec80a8 100644 --- a/src/kernel/context/ContextBoost.cpp +++ b/src/kernel/context/ContextBoost.cpp @@ -18,8 +18,6 @@ namespace context { 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); } @@ -106,35 +104,6 @@ void BoostContext::swap_into(SwappedContext* to_) #endif } -// 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."); diff --git a/src/kernel/context/ContextBoost.hpp b/src/kernel/context/ContextBoost.hpp index 781cdd7a5a..a1548e67a7 100644 --- a/src/kernel/context/ContextBoost.hpp +++ b/src/kernel/context/ContextBoost.hpp @@ -60,17 +60,6 @@ private: static void wrapper(arg_type arg); }; -class ParallelBoostContext : public BoostContext { -public: - ParallelBoostContext(std::function code, void_pfn_smxprocess_t cleanup_func, smx_actor_t process, - SwappedContextFactory* factory) - : BoostContext(std::move(code), cleanup_func, process, factory) - { - } - void suspend() override; - void resume() override; -}; - class BoostContextFactory : public SwappedContextFactory { public: BoostContextFactory() : SwappedContextFactory("BoostContextFactory") {} diff --git a/src/kernel/context/ContextRaw.cpp b/src/kernel/context/ContextRaw.cpp index 622f5b48db..fe8243da01 100644 --- a/src/kernel/context/ContextRaw.cpp +++ b/src/kernel/context/ContextRaw.cpp @@ -189,8 +189,6 @@ namespace context { Context* RawContextFactory::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); } @@ -247,38 +245,6 @@ void RawContext::swap_into(SwappedContext* to_) ASAN_FINISH_SWITCH(fake_stack, &from->asan_ctx_->asan_stack_, &from->asan_ctx_->asan_stack_size_); } -// ParallelRawContext - -void ParallelRawContext::suspend() -{ - /* determine the next context */ - boost::optional next_work = parmap_->next(); - SwappedContext* next_context; - if (next_work) { - /* there is a next process to resume */ - XBT_DEBUG("Run next process"); - next_context = static_cast(next_work.get()->context_); - } else { - /* all processes were run, go to the barrier */ - XBT_DEBUG("No more processes to run"); - next_context = workers_context_[worker_id_]; - XBT_DEBUG("Restoring worker stack %zu (working threads = %zu)", worker_id_, threads_working_.load()); - } - - Context::set_current(next_context); - this->swap_into(next_context); -} - -void ParallelRawContext::resume() -{ - worker_id_ = threads_working_.fetch_add(1, std::memory_order_relaxed); - SwappedContext* worker_context = static_cast(self()); - workers_context_[worker_id_] = worker_context; - XBT_DEBUG("Saving worker stack %zu", worker_id_); - Context::set_current(this); - worker_context->swap_into(this); -} - ContextFactory* raw_factory() { XBT_VERB("Using raw contexts. Because the glibc is just not good enough for us."); diff --git a/src/kernel/context/ContextRaw.hpp b/src/kernel/context/ContextRaw.hpp index 63fe3b783a..b16fe7c612 100644 --- a/src/kernel/context/ContextRaw.hpp +++ b/src/kernel/context/ContextRaw.hpp @@ -47,17 +47,6 @@ private: static void wrapper(void* arg); }; -class ParallelRawContext : public RawContext { -public: - ParallelRawContext(std::function code, void_pfn_smxprocess_t cleanup_func, smx_actor_t process, - SwappedContextFactory* factory) - : RawContext(std::move(code), cleanup_func, process, factory) - { - } - void suspend() override; - void resume() override; -}; - class RawContextFactory : public SwappedContextFactory { public: RawContextFactory() : SwappedContextFactory("RawContextFactory") {} diff --git a/src/kernel/context/ContextSwapped.cpp b/src/kernel/context/ContextSwapped.cpp index e5cdd662b0..fc2663efcc 100644 --- a/src/kernel/context/ContextSwapped.cpp +++ b/src/kernel/context/ContextSwapped.cpp @@ -11,7 +11,6 @@ #include "xbt/parmap.hpp" #include "src/kernel/context/ContextSwapped.hpp" -#include "src/kernel/context/ContextUnix.hpp" // FIXME: temporary reverse import #ifdef _WIN32 #include -- 2.20.1