Lines Matching refs:_tail
92 uint32_t _tail;
414 : _capacity(size), _head(1), _tail(0), _empty(true), _round(0)
429 _tail = 0;
448 (_head < _tail) && (
449 (_head < idx && _tail < idx) ||
450 (_head > idx && _tail > idx)
451 )) || (_tail < idx && idx < _head));
482 (round == _round && idx <= _tail && (
483 _head <= idx || _head > _tail)) ||
485 idx > _tail &&
487 _head > _tail)
492 reference back() { return (*this)[_tail]; }
494 uint32_t tail() const { return _tail; }
501 else if (_head <= _tail)
502 return _tail - _head + 1;
504 return _capacity - _head + _tail + 1;
539 _empty = _head == _tail;
540 if (_tail == 0)
542 decrease(_tail);
549 (*this)[_tail] = val;
557 increase(_tail);
558 if (_tail == 0)
561 if (_tail == _head && !_empty)
588 (_tail + 1 == _head || (_tail + 1 == _capacity && _head == 0));
596 else if (_head > _tail)
607 else if (_head > _tail)
617 auto poi = moduloAdd(_tail, 1);
626 auto poi = moduloAdd(_tail, 1);
636 * possible, then the round value is _round, unless _tail is at the end of
641 assert(isValidIdx(idx) || moduloAdd(_tail, 1) == idx);
646 if (idx > _tail) {
647 if (idx >= _head && _head > _tail) {
650 } else if (idx < _head && _tail + 1 == _capacity) {