Lines Matching full:stamp
32 /// The current stamp.
33 stamp: AtomicUsize, field
45 /// Stamp to store into the slot after reading or writing.
46 stamp: usize, field
54 stamp: 0, in default()
63 /// This value is a "stamp" consisting of an index into the buffer, a mark bit, and a lap, but
72 /// This value is a "stamp" consisting of an index into the buffer, a mark bit, and a lap, but
85 /// A stamp with the value of `{ lap: 1, mark: 0, index: 0 }`.
120 // Set the stamp to `{ lap: 0, mark: 0, index: i }`. in with_capacity()
122 stamp: AtomicUsize::new(i), in with_capacity()
164 token.array.stamp = 0; in start_send()
174 let stamp = slot.stamp.load(Ordering::Acquire); in start_send() localVariable
176 // If the tail and the stamp match, we may attempt to push. in start_send()
177 if tail == stamp { in start_send()
198 token.array.stamp = tail + 1; in start_send()
206 } else if stamp.wrapping_add(self.one_lap) == tail + 1 { in start_send()
219 // Snooze because we need to wait for the stamp to get updated. in start_send()
235 // Write the message into the slot and update the stamp. in write()
237 slot.stamp.store(token.array.stamp, Ordering::Release); in write()
256 let stamp = slot.stamp.load(Ordering::Acquire); in start_recv() localVariable
258 // If the the stamp is ahead of the head by 1, we may attempt to pop. in start_recv()
259 if head + 1 == stamp { in start_recv()
280 token.array.stamp = head.wrapping_add(self.one_lap); in start_recv()
288 } else if stamp == head { in start_recv()
298 token.array.stamp = 0; in start_recv()
309 // Snooze because we need to wait for the stamp to get updated. in start_recv()
325 // Read the message from the slot and update the stamp. in read()
327 slot.stamp.store(token.array.stamp, Ordering::Release); in read()