aboutsummaryrefslogtreecommitdiffstats
path: root/vbench/src/vbench/core
diff options
context:
space:
mode:
Diffstat (limited to 'vbench/src/vbench/core')
-rw-r--r--vbench/src/vbench/core/handler_thread.h2
-rw-r--r--vbench/src/vbench/core/handler_thread.hpp6
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());
}