| 15 | } |
| 16 | |
| 17 | ConcurrentQueue::~ConcurrentQueue() |
| 18 | { |
| 19 | { |
| 20 | std::lock_guard<std::mutex> lock(queueMutex); |
| 21 | assert(!bailout); |
| 22 | bailout = true; |
| 23 | } |
| 24 | jobAvailableVar.notify_all(); |
| 25 | |
| 26 | for (auto &x : threads) |
| 27 | x.join(); |
| 28 | assert(jobsLeft == _queue.size() && "Only not yet started jobs are left."); |
| 29 | } |
| 30 | |
| 31 | void ConcurrentQueue::enqueue(Job job) |
| 32 | { |