diff --git a/cpp/src/db/env.cpp b/cpp/src/db/env.cpp index 8b1a288f9f..760a7e4323 100644 --- a/cpp/src/db/env.cpp +++ b/cpp/src/db/env.cpp @@ -1,16 +1,15 @@ +#include #include "env.h" namespace zilliz { namespace vecwise { namespace engine { -Env::Env() - : _bg_work_cv(&_bg_work_mutex), - _bg_work_started(false) { +Env::Env() : _bg_work_started(false) { } void Env::schedule(void (*function_)(void* arg_), void* arg_) { - std::lock_guard lock; + std::unique_lock lock(_bg_work_mutex); if (!_bg_work_started) { _bg_work_started = true; @@ -27,9 +26,9 @@ void Env::schedule(void (*function_)(void* arg_), void* arg_) { void Env::backgroud_thread_main() { while (true) { - std::lock_guard lock; + std::unique_lock lock(_bg_work_mutex); while (_bg_work_queue.empty()) { - _bg_work_cv.wait(); + _bg_work_cv.wait(lock); } assert(!_bg_work_queue.empty());