// if blocking, then addJob() blocks when queue is full
// otherwise, addJob() simply returns false when queue is full
ThrPool::ThrPool(size_t sz, bool blocking)
// if blocking, then addJob() blocks when queue is full
// otherwise, addJob() simply returns false when queue is full
ThrPool::ThrPool(size_t sz, bool blocking)
-: nthreads_(sz),blockadd_(blocking),jobq_(100*sz)
-{
- for (size_t i=0; i<nthreads_; i++)
+: nthreads_(sz),blockadd_(blocking),jobq_(100*sz) {
+ for (size_t i=0; i<nthreads_; i++)
th_.emplace_back(&ThrPool::do_worker, this);
}
// IMPORTANT: this function can be called only when no external thread
// will ever use this thread pool again or is currently blocking on it
th_.emplace_back(&ThrPool::do_worker, this);
}
// IMPORTANT: this function can be called only when no external thread
// will ever use this thread pool again or is currently blocking on it
-bool
-ThrPool::addJob(const job_t &j)
-{
- return jobq_.enq(j,blockadd_);
+bool ThrPool::addJob(const job_t &j) {
+ return jobq_.enq(j,blockadd_);