| 579 | // Thread-safe. |
| 580 | template<typename It> |
| 581 | inline bool enqueue_bulk(It itemFirst, size_t count) |
| 582 | { |
| 583 | if (details::likely(inner.enqueue_bulk(std::forward<It>(itemFirst), count))) { |
| 584 | sema->signal((LightweightSemaphore::ssize_t)(ssize_t)count); |
| 585 | return true; |
| 586 | } |
| 587 | return false; |
| 588 | } |
| 589 | |
| 590 | // Enqueues several items using an explicit producer token. |
| 591 | // Allocates memory if required. Only fails if memory allocation fails |