From 57a1091dfb2c6403cbe63c7ddca8acc7e3d0f940 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Mon, 20 Aug 2018 23:51:16 +0200 Subject: Switch to https://git.tomsmeding.com/competition --- competition/job.cpp | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 competition/job.cpp (limited to 'competition/job.cpp') diff --git a/competition/job.cpp b/competition/job.cpp deleted file mode 100644 index 043074e..0000000 --- a/competition/job.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include -#include "job.h" - -void Scheduler::workerEntry() { - while (true) { - Job *job = nullptr; - - { - lock_guard commMutGuard(commMut); - if (terminateFlag) break; - if (jobs.size() > 0) { - job = jobs.front(); - jobs.pop(); - } - } - - if (job) { - job->callback(); - } else { - this_thread::sleep_for(chrono::milliseconds(100)); - } - } -} - -Scheduler::Scheduler(int nthreads) - : nthreads(nthreads) { - - assert(nthreads > 0); - - workers.reserve(nthreads); - for (int i = 0; i < nthreads; i++) { - workers.emplace_back([this]() { workerEntry(); }); - } -} - -Scheduler::~Scheduler() { - finish(); -} - -void Scheduler::submit(const function &func) { - Job *job = new Job(func); - lock_guard commMutGuard(commMut); - jobs.push(job); -} - -void Scheduler::finish() { - for (int i = 0; i < nthreads; i++) { - workers[i].join(); - } -} -- cgit v1.2.3-70-g09d2