pub struct RcuQueue<T, F = RcuDefaultFlavor> { /* private fields */ }Expand description
Defines a RCU wait-free queue.
This queue supports multiple concurrents readers and writers. It is guaranteed to never block on a call.
§Limitations
§References
This queue currently do not offer a way to peek the back or front of the queue. It is
also currently not possible to iterate over the queue. Because of this, it is impossible
to get any sort of references. The only way to get data is to remove it from the queue
with RcuQueue::pop.
§Safety
It is safe to send an Arc<RcuQueue<T>> to a non-registered RCU thread. A non-registered
thread may drop an RcuQueue<T> without calling any RCU primitives since lifetime rules
prevent any other thread from accessing a RCU reference.
Implementations§
Trait Implementations§
impl<T, F> Send for RcuQueue<T, F>
impl<T, F> Sync for RcuQueue<T, F>
Auto Trait Implementations§
impl<T, F> Freeze for RcuQueue<T, F>
impl<T, F> RefUnwindSafe for RcuQueue<T, F>where
T: RefUnwindSafe,
F: RefUnwindSafe,
impl<T, F> Unpin for RcuQueue<T, F>
impl<T, F> UnwindSafe for RcuQueue<T, F>where
T: RefUnwindSafe,
F: RefUnwindSafe,
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