in src/outmdsd/ConcurrentQueue.h [79:88]
void wait_and_pop(T& value)
{
std::unique_lock<std::mutex> lk(mut);
data_cond.wait(lk,[this]{ return (!data_queue.empty() || stopOnceEmpty);});
if (data_queue.empty() && stopOnceEmpty) {
return;
}
value = data_queue.front();
data_queue.pop();
}