X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6658e9f2ff4a24cc2e074c654f8f818be1d79089..4c206c2ab2737c12672b8bc7aab7b0ea2cc99484:/src/kernel/context/ContextRaw.cpp 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.");