Lines Matching refs:tail
63 tail: CachePadded<AtomicUsize>, field
101 let tail = 0; in new() localVariable
128 tail: CachePadded::new(AtomicUsize::new(tail)), in new()
149 let mut tail = self.tail.load(Ordering::Relaxed); in push() localVariable
153 let index = tail & (self.one_lap - 1); in push()
154 let lap = tail & !(self.one_lap - 1); in push()
161 if tail == stamp { in push()
165 tail + 1 in push()
173 match self.tail.compare_exchange_weak( in push()
174 tail, in push()
184 slot.stamp.store(tail + 1, Ordering::Release); in push()
188 tail = t; in push()
192 } else if stamp.wrapping_add(self.one_lap) == tail + 1 { in push()
197 if head.wrapping_add(self.one_lap) == tail { in push()
203 tail = self.tail.load(Ordering::Relaxed); in push()
207 tail = self.tail.load(Ordering::Relaxed); in push()
273 let tail = self.tail.load(Ordering::Relaxed); in pop() localVariable
276 if tail == head { in pop()
320 let tail = self.tail.load(Ordering::SeqCst); in is_empty() localVariable
327 tail == head in is_empty()
344 let tail = self.tail.load(Ordering::SeqCst); in is_full() localVariable
351 head.wrapping_add(self.one_lap) == tail in is_full()
373 let tail = self.tail.load(Ordering::SeqCst); in len() localVariable
377 if self.tail.load(Ordering::SeqCst) == tail { in len()
379 let tix = tail & (self.one_lap - 1); in len()
385 } else if tail == head { in len()