| 27 | |
| 28 | template <typename U = T> |
| 29 | folly::coro::Task<void> co_enqueue(U &&item) { |
| 30 | co_await enqueueSemaphore_.co_wait(); |
| 31 | queue_.writeIfNotFull(std::forward<U>(item)); |
| 32 | dequeueSemaphore_.signal(); |
| 33 | } |
| 34 | |
| 35 | T dequeue() { |
| 36 | dequeueSemaphore_.wait(); |