MCPcopy Create free account
hub / github.com/cameron314/concurrentqueue / try_dequeue_bulk

Method try_dequeue_bulk

concurrentqueue.h:1253–1263  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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.

Callers

nothing calls this directly

Calls 4

next_prodMethod · 0.80
dequeue_bulkMethod · 0.80
loadMethod · 0.45
fetch_addMethod · 0.45

Tested by

no test coverage detected