| 67 | |
| 68 | template <typename T> |
| 69 | void Chan<T>::put(T&& in) { |
| 70 | std::unique_lock<std::mutex> lock(mutex); |
| 71 | auto notify = queue.size() == 0 && !closed; |
| 72 | queue.push(std::move(in)); |
| 73 | if (notify) { |
| 74 | cv.notify_all(); |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | template <typename T> |
| 79 | void Chan<T>::put(const T& in) { |