| 1757 | inline ProducerBase* next_prod() const { return static_cast<ProducerBase*>(next); } |
| 1758 | |
| 1759 | inline size_t size_approx() const |
| 1760 | { |
| 1761 | auto tail = tailIndex.load(std::memory_order_relaxed); |
| 1762 | auto head = headIndex.load(std::memory_order_relaxed); |
| 1763 | return details::circular_less_than(head, tail) ? static_cast<size_t>(tail - head) : 0; |
| 1764 | } |
| 1765 | |
| 1766 | inline index_t getTail() const { return tailIndex.load(std::memory_order_relaxed); } |
| 1767 | protected: |