Struct tikv::server::raft_client::Queue [−][src]
A quick queue for sending raft messages.
Fields
buf: ArrayQueue<RaftMessage>
connected: AtomicBool
A flag indicates whether the queue can still accept messages.
waker: Mutex<Option<Waker>>
Implementations
impl Queue
[src][−]
fn with_capacity(cap: usize) -> Queue
[src][−]
Creates a Queue that can store at lease cap
messages.
fn push(&self, msg: RaftMessage) -> Result<(), DiscardReason>
[src][−]
Pushes message into the tail of the Queue.
You are supposed to call notify
to make sure the message will be sent
finally.
True when the message is pushed into queue otherwise false.
fn disconnect(&self)
[src]
fn notify(&self)
[src][−]
Wakes up consumer to retrive message.
fn len(&self) -> usize
[src][−]
Gets the buffer len.
fn try_pop(&self) -> Option<RaftMessage>
[src][−]
Gets message from the head of the queue.
fn pop(&self, ctx: &Context<'_>) -> Option<RaftMessage>
[src][−]
Same as try_pop
but register interest on readiness when None
is returned.
The method should be called in polling context. If the queue is empty, it will register current polling task for notifications.
Auto Trait Implementations
impl !RefUnwindSafe for Queue
impl Send for Queue
impl Sync for Queue
impl Unpin for Queue
impl !UnwindSafe for Queue
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<V, W> ConvertFrom<W> for V where
W: ConvertTo<V>,
[src][+]
W: ConvertTo<V>,
impl<T> From<T> for T
[src][+]
impl<T> Instrument for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> Pointable for T
[src][+]
impl<T> Pointable for T
[src][+]
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> Sealed<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> SendSyncUnwindSafe for T where
T: Send + Sync + UnwindSafe + ?Sized,
[src]
T: Send + Sync + UnwindSafe + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src][+]
V: MultiLane<T>,