pub struct BlockingMpmcRing;Expand description
Factory for an MPMC grid of N SPSC rings partitioned across M consumers, every blocking call backed by a cross-process waker.
Implementations§
Source§impl BlockingMpmcRing
impl BlockingMpmcRing
Sourcepub fn create_anon_grid(
n_producers: usize,
n_consumers: usize,
capacity: usize,
) -> Result<(Vec<BlockingMpmcProducer>, Vec<BlockingMpmcConsumer>), BlockingError>
pub fn create_anon_grid( n_producers: usize, n_consumers: usize, capacity: usize, ) -> Result<(Vec<BlockingMpmcProducer>, Vec<BlockingMpmcConsumer>), BlockingError>
In-process grid: N rings, M consumer subsets, anon-mapped.
Sourcepub fn create_grid(
path_prefix: impl AsRef<Path>,
n_producers: usize,
n_consumers: usize,
capacity: usize,
) -> Result<(Vec<BlockingMpmcProducer>, Vec<BlockingMpmcConsumer>), BlockingError>
pub fn create_grid( path_prefix: impl AsRef<Path>, n_producers: usize, n_consumers: usize, capacity: usize, ) -> Result<(Vec<BlockingMpmcProducer>, Vec<BlockingMpmcConsumer>), BlockingError>
File-backed grid. Path layout:
<prefix>.ring.{i}.bin - SPSC ring for producer i
<prefix>.pw.{i}.bin - producer-side waker for ring i
<prefix>.cw.{m}.bin - consumer-side waker for subset m
Sourcepub fn open_grid(
path_prefix: impl AsRef<Path>,
n_producers: usize,
n_consumers: usize,
expected_capacity: usize,
) -> Result<(Vec<BlockingMpmcProducer>, Vec<BlockingMpmcConsumer>), BlockingError>
pub fn open_grid( path_prefix: impl AsRef<Path>, n_producers: usize, n_consumers: usize, expected_capacity: usize, ) -> Result<(Vec<BlockingMpmcProducer>, Vec<BlockingMpmcConsumer>), BlockingError>
Open an existing file-backed grid.
Auto Trait Implementations§
impl Freeze for BlockingMpmcRing
impl RefUnwindSafe for BlockingMpmcRing
impl Send for BlockingMpmcRing
impl Sync for BlockingMpmcRing
impl Unpin for BlockingMpmcRing
impl UnsafeUnpin for BlockingMpmcRing
impl UnwindSafe for BlockingMpmcRing
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