2 #include "ring_buffer.hh"
8 std::unique_lock<std::mutex> lock(mutex);
10 [
this]() {
return stop || size < capacity; });
14 head = (head + 1) % capacity;
23 std::unique_lock<std::mutex> lock(mutex);
24 cv_pop.wait(lock, [
this]() {
return stop || size > 0; });
27 auto item = buffer[tail];
28 tail = (tail + 1) % capacity;
39 std::lock_guard<std::mutex> lock(mutex);
50 std::lock_guard<std::mutex> lock(mutex);