Struct tikv::server::raft_client::Queue[][src]

struct Queue {
    buf: ArrayQueue<RaftMessage>,
    connected: AtomicBool,
    waker: Mutex<Option<Waker>>,
}

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]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<V, W> ConvertFrom<W> for V where
    W: ConvertTo<V>, 
[src]

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]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> Sealed<T> for T where
    T: ?Sized
[src]

impl<T> SendSyncUnwindSafe for T where
    T: Send + Sync + UnwindSafe + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]