BlockingUnboundedSpscProducer

Struct BlockingUnboundedSpscProducer 

Source
pub struct BlockingUnboundedSpscProducer<T, const P: usize, const NUM_SEGS_P2: usize> { /* private fields */ }
Expand description

Blocking producer for unbounded SPSC queue.

Implementations§

Source§

impl<T, const P: usize, const NUM_SEGS_P2: usize> BlockingUnboundedSpscProducer<T, P, NUM_SEGS_P2>

Source

pub fn try_send(&self, value: T) -> Result<(), PushError<T>>

Fast-path send without blocking.

For unbounded queues, this always succeeds unless the channel is closed.

Source

pub fn send(&self, value: T) -> Result<(), PushError<T>>

Sends a single item.

For unbounded queues, this never blocks since the queue grows dynamically.

Source

pub fn send_slice(&self, values: &mut Vec<T>) -> Result<(), PushError<()>>

Sends a Vec of items using bulk operations.

On return, the Vec will be empty if all items were sent, or contain only the items that were not sent (if the channel closed).

Source

pub fn close(&mut self)

Closes the queue and wakes any waiters.

Source

pub fn node_count(&self) -> usize

Returns the number of nodes in the unbounded queue.

Source

pub fn total_capacity(&self) -> usize

Returns the total capacity across all nodes.

Auto Trait Implementations§

§

impl<T, const P: usize, const NUM_SEGS_P2: usize> Freeze for BlockingUnboundedSpscProducer<T, P, NUM_SEGS_P2>

§

impl<T, const P: usize, const NUM_SEGS_P2: usize> !RefUnwindSafe for BlockingUnboundedSpscProducer<T, P, NUM_SEGS_P2>

§

impl<T, const P: usize, const NUM_SEGS_P2: usize> Send for BlockingUnboundedSpscProducer<T, P, NUM_SEGS_P2>

§

impl<T, const P: usize, const NUM_SEGS_P2: usize> Sync for BlockingUnboundedSpscProducer<T, P, NUM_SEGS_P2>

§

impl<T, const P: usize, const NUM_SEGS_P2: usize> Unpin for BlockingUnboundedSpscProducer<T, P, NUM_SEGS_P2>

§

impl<T, const P: usize, const NUM_SEGS_P2: usize> !UnwindSafe for BlockingUnboundedSpscProducer<T, P, NUM_SEGS_P2>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V