| 1229 | // Never allocates. Thread-safe. |
| 1230 | template<typename It> |
| 1231 | size_t try_dequeue_bulk(It itemFirst, size_t max) |
| 1232 | { |
| 1233 | size_t count = 0; |
| 1234 | for (auto ptr = producerListTail.load(std::memory_order_acquire); ptr != nullptr; ptr = ptr->next_prod()) { |
| 1235 | count += ptr->dequeue_bulk(itemFirst, max - count); |
| 1236 | if (count == max) { |
| 1237 | break; |
| 1238 | } |
| 1239 | } |
| 1240 | return count; |
| 1241 | } |
| 1242 | |
| 1243 | // Attempts to dequeue several elements from the queue using an explicit consumer token. |
| 1244 | // Returns the number of items actually dequeued. |
nothing calls this directly
no test coverage detected