diff options
Diffstat (limited to 'job.h')
-rw-r--r-- | job.h | 40 |
1 files changed, 0 insertions, 40 deletions
@@ -1,40 +0,0 @@ -#pragma once - -#include <functional> -#include <queue> -#include <vector> -#include <thread> -#include <mutex> - -using namespace std; - - -class Scheduler { - struct Job { - function<void()> callback; - - Job(const function<void()> callback) - : callback(callback) {} - }; - - queue<Job*> jobs; - bool finishFlag = false; - mutex commMut; - - bool hasJoined = false; - - vector<thread> workers; - - void workerEntry(); - -public: - const int nthreads; - - Scheduler(int nthreads); - ~Scheduler(); - - // func is run in child thread - void submit(const function<void()> &func); - - void finish(); -}; |