+// if blocking, then addJob() blocks when queue is full
+// otherwise, addJob() simply returns false when queue is full
+thread_pool::thread_pool(size_t sz, bool blocking)
+: nthreads_(sz),blockadd_(blocking),jobq_(100*sz) {
+ for (size_t i=0; i<nthreads_; i++)
+ th_.emplace_back(&thread_pool::do_worker, this);