struct Slot<T> {
rem: AtomicUsize,
pos: u64,
val: Option<T>,
}Expand description
Slot in the buffer.
Fields§
§rem: AtomicUsizeRemaining number of receivers that are expected to see this value.
When this goes to zero, the value is released.
An atomic is used as it is mutated concurrently with the slot read lock acquired.
pos: u64Uniquely identifies the send stored in the slot.
val: Option<T>The value being broadcast.
The value is set by send when the write lock is held. When a reader
drops, rem is decremented. When it hits zero, the value is dropped.
Auto Trait Implementations§
impl<T> !Freeze for Slot<T>
impl<T> RefUnwindSafe for Slot<T>where
T: RefUnwindSafe,
impl<T> Send for Slot<T>where
T: Send,
impl<T> Sync for Slot<T>where
T: Sync,
impl<T> Unpin for Slot<T>where
T: Unpin,
impl<T> UnwindSafe for Slot<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more