diff --git a/redGrapes/dispatch/thread/worker.cpp b/redGrapes/dispatch/thread/worker.cpp index 9445e27f..49ddb4aa 100644 --- a/redGrapes/dispatch/thread/worker.cpp +++ b/redGrapes/dispatch/thread/worker.cpp @@ -32,7 +32,6 @@ WorkerThread::~WorkerThread() void WorkerThread::start() { thread = std::thread([this]{ this->run(); }); - this->Worker::start(); } Worker::Worker( memory::ChunkedBumpAlloc & alloc, HwlocContext & hwloc_ctx, hwloc_obj_t const & obj, WorkerId worker_id ) @@ -46,12 +45,6 @@ Worker::~Worker() { } -void Worker::start() -{ - m_start.store(true, std::memory_order_release); - wake(); -} - void Worker::stop() { SPDLOG_TRACE("Worker::stop()"); @@ -83,12 +76,6 @@ void WorkerThread::run() }; */ - /* wait for start-flag to be triggerd in order - * to avoid premature access to `shared_from_this` - */ - while( ! m_start.load(std::memory_order_consume) ) - cv.wait(); - /* initialize thread-local variables */ SingletonContext::get().current_worker = this->shared_from_this(); diff --git a/redGrapes/dispatch/thread/worker.hpp b/redGrapes/dispatch/thread/worker.hpp index 10684cb1..650d07a9 100644 --- a/redGrapes/dispatch/thread/worker.hpp +++ b/redGrapes/dispatch/thread/worker.hpp @@ -44,13 +44,6 @@ struct Worker //private: WorkerId id; - /*! - * if true, the thread shall start - * executing the jobs in its queue - * and request rescheduling if empty - */ - std::atomic_bool m_start{ false }; - /*! if true, the thread shall stop * instead of waiting when it is out of jobs */ @@ -78,7 +71,6 @@ struct Worker inline scheduler::WakerId get_waker_id() { return id + 1; } inline bool wake() { return cv.notify(); } - void start(); virtual void stop(); /* adds a new task to the emplacement queue @@ -133,7 +125,7 @@ struct WorkerThread /* function the thread will execute */ void run(); - + void cpubind(); void membind(); };