| 404 | } |
| 405 | |
| 406 | bool Dequeue(T& value) { |
| 407 | for (size_t i = 0; i < Concurrency; ++i) { |
| 408 | TQueueType& queue = Queues[ReadPos++ % Concurrency]; |
| 409 | if (queue.Dequeue(value)) { |
| 410 | return true; |
| 411 | } |
| 412 | } |
| 413 | return false; |
| 414 | } |
| 415 | |
| 416 | bool IsEmpty() { |
| 417 | for (size_t i = 0; i < Concurrency; ++i) { |