Lines Matching defs:_idx
155 uint32_t _idx;
160 : _cq(cq), _idx(idx), _round(round) {}
177 iterator() : _cq(nullptr), _idx(0), _round(0) { }
180 : _cq(it._cq), _idx(it._idx), _round(it._round) {}
186 _idx = it._idx;
191 ~iterator() { _cq = nullptr; _idx = 0; _round = 0; }
209 return _cq != nullptr && _cq->isValidIdx(_idx, _round);
222 return _cq == that._cq && _idx == that._idx &&
239 return (*_cq)[_idx];
245 return (*_cq)[_idx];
253 return &((*_cq)[_idx]);
258 return &((*_cq)[_idx]);
265 _cq->increase(_idx);
266 if (_idx == 0)
281 * The multipass guarantee is provided by the reliance on _idx.
296 return _cq && !(_idx == _cq->head() &&
298 (_idx == 0 && _round != _cq->_round + 1) ||
299 (_idx !=0 && _round != _cq->_round)));
308 if (_idx == 0)
310 _cq->decrease(_idx);
321 _round += (t + _idx) / _cq->capacity();
322 _idx = _cq->moduloAdd(_idx, t);
332 _round += (-t + _idx) / _cq->capacity();
333 _idx = _cq->moduloSub(_idx, t);
372 auto ret = _cq->sub(this->_idx, that._idx, _cq->capacity());
393 (this->_round == that._round && _idx < that._idx);
407 size_t idx() const { return _idx; }
532 _head = hIt._idx;