| 1251 | // Never allocates. Thread-safe. |
| 1252 | template<typename It> |
| 1253 | size_t try_dequeue_bulk(It itemFirst, size_t max) |
| 1254 | { |
| 1255 | size_t count = 0; |
| 1256 | for (auto ptr = producerListTail.load(std::memory_order_acquire); ptr != nullptr; ptr = ptr->next_prod()) { |
| 1257 | count += ptr->dequeue_bulk(itemFirst, max - count); |
| 1258 | if (count == max) { |
| 1259 | break; |
| 1260 | } |
| 1261 | } |
| 1262 | return count; |
| 1263 | } |
| 1264 | |
| 1265 | // Attempts to dequeue several elements from the queue using an explicit consumer token. |
| 1266 | // Returns the number of items actually dequeued. |
nothing calls this directly
no test coverage detected