Struct tikv_util::worker::future::Worker[][src]

pub struct Worker<T: Display> {
    scheduler: Scheduler<T>,
    receiver: Mutex<Option<UnboundedReceiver<Option<T>>>>,
    handle: Option<JoinHandle<()>>,
}

A worker that can schedule time consuming tasks.

Fields

scheduler: Scheduler<T>receiver: Mutex<Option<UnboundedReceiver<Option<T>>>>handle: Option<JoinHandle<()>>

Implementations

impl<T: Display + Send + 'static> Worker<T>[src]

pub fn new<S: Into<Arc<str>>>(name: S) -> Worker<T>[src]

Creates a worker.

pub fn start<R>(&mut self, runner: R) -> Result<(), Error> where
    R: Runnable<T> + Send + 'static, 
[src]

Starts the worker.

pub fn scheduler(&self) -> Scheduler<T>[src]

Gets a scheduler to schedule the task.

pub fn schedule(&self, task: T) -> Result<(), Stopped<T>>[src]

Schedules a task to run.

If the worker is stopped, an error will return.

pub fn is_busy(&self) -> bool[src]

Checks if underlying worker can’t handle task immediately.

pub fn name(&self) -> &str[src]

pub fn stop(&mut self) -> Option<JoinHandle<()>>[src]

Stops the worker thread.

Auto Trait Implementations

impl<T> !RefUnwindSafe for Worker<T>

impl<T> Send for Worker<T> where
    T: Send

impl<T> Sync for Worker<T> where
    T: Send

impl<T> Unpin for Worker<T>

impl<T> !UnwindSafe for Worker<T>

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