Struct tikv::server::gc_worker::gc_manager::GcManagerContext[][src]

pub(super) struct GcManagerContext {
    stop_signal_receiver: Option<Receiver<()>>,
    is_stopped: bool,
}

Used to check if GcManager should be stopped.

When GcManager is running, it might take very long time to GC a round. It should be able to break at any time so that we can shut down TiKV in time.

Fields

stop_signal_receiver: Option<Receiver<()>>

Used to receive stop signal. The sender side is hold in GcManagerHandle. If this field is None, the GcManagerContext will never stop.

is_stopped: bool

Whether an stop signal is received.

Implementations

impl GcManagerContext[src]

pub fn new() -> Self[src]

pub fn set_stop_signal_receiver(&mut self, rx: Receiver<()>)[src]

Sets the receiver that used to receive the stop signal. GcManagerContext will be considered to be stopped as soon as a message is received from the receiver.

fn sleep_or_stop(&mut self, timeout: Duration) -> Result<(), GcManagerError>[src]

Sleeps for a while. if a stop message is received, returns immediately with GcManagerError::Stopped.

fn check_stopped(&mut self) -> Result<(), GcManagerError>[src]

Checks if a stop message has been fired. Returns GcManagerError::Stopped if there’s such a message.

Auto Trait Implementations

impl !RefUnwindSafe for GcManagerContext

impl Send for GcManagerContext

impl !Sync for GcManagerContext

impl Unpin for GcManagerContext

impl !UnwindSafe for GcManagerContext

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, 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]