| 92 | } |
| 93 | |
| 94 | T Pop() { |
| 95 | std::unique_lock<std::mutex> lock(mutex_); |
| 96 | cv_.wait(lock, [=] { return !q_.empty(); }); |
| 97 | T rc(std::move(q_.front())); |
| 98 | q_.pop_front(); |
| 99 | return rc; |
| 100 | } |
| 101 | |
| 102 | void Pop(T *t) { |
| 103 | std::unique_lock<std::mutex> lock(mutex_); |