| 39 | } |
| 40 | |
| 41 | bool try_pop(T& value) { |
| 42 | std::lock_guard<std::mutex> lk(mut); |
| 43 | if(data_queue.empty()) |
| 44 | return false; |
| 45 | value=std::move(data_queue.front()); |
| 46 | data_queue.pop(); |
| 47 | return true; |
| 48 | } |
| 49 | |
| 50 | std::shared_ptr<T> try_pop() { |
| 51 | std::lock_guard<std::mutex> lk(mut); |