diff options
Diffstat (limited to 'vbench/src/vbench/core')
-rw-r--r-- | vbench/src/vbench/core/handler_thread.h | 2 | ||||
-rw-r--r-- | vbench/src/vbench/core/handler_thread.hpp | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/vbench/src/vbench/core/handler_thread.h b/vbench/src/vbench/core/handler_thread.h index 8ece1389dfc..81a0a720720 100644 --- a/vbench/src/vbench/core/handler_thread.h +++ b/vbench/src/vbench/core/handler_thread.h @@ -26,7 +26,7 @@ private: std::condition_variable _cond; vespalib::ArrayQueue<std::unique_ptr<T> > _queue; Handler<T> &_next; - vespalib::Thread _thread; + std::thread _thread; bool _done; void run() override; diff --git a/vbench/src/vbench/core/handler_thread.hpp b/vbench/src/vbench/core/handler_thread.hpp index 1a99861ea81..3373e196ab7 100644 --- a/vbench/src/vbench/core/handler_thread.hpp +++ b/vbench/src/vbench/core/handler_thread.hpp @@ -31,13 +31,15 @@ HandlerThread<T>::HandlerThread(Handler<T> &next, init_fun_t init_fun) _thread(), _done(false) { - _thread = vespalib::Thread::start(*this, init_fun); + _thread = vespalib::thread::start(*this, init_fun); } template <typename T> HandlerThread<T>::~HandlerThread() { - join(); + if (!_done) { + join(); + } assert(_queue.empty()); } |