| 363 | |
| 364 | template <typename T> |
| 365 | bool ThreadsafeQueue<T>::pop(T& value) { |
| 366 | if (shutdown_) return false; |
| 367 | std::unique_lock<std::mutex> lk(mutex_); |
| 368 | if (data_queue_.empty()) return false; |
| 369 | value = std::move(*data_queue_.front()); |
| 370 | data_queue_.pop(); |
| 371 | lk.unlock(); // Unlock before notify. |
| 372 | data_cond_.notify_one(); |
| 373 | return true; |
| 374 | } |
| 375 | |
| 376 | template <typename T> |
| 377 | std::shared_ptr<T> ThreadsafeQueue<T>::pop() { |
no test coverage detected