Struct ibc_relayer::util::task::TaskHandle
source · pub struct TaskHandle { /* private fields */ }Expand description
A task handle holds the endpoints for stopping or waiting for a background task to terminate.
A holder of TaskHandle can explicitly stop the background task by
calling shutdown or
shutdown_and_wait.
Otherwise, when the TaskHandle is dropped, it will stop the background
task and wait for the background task to terminate before returning.
Implementations§
source§impl TaskHandle
impl TaskHandle
sourcepub fn join(self)
pub fn join(self)
Wait for the background task to terminate.
Note that because the background tasks are meant to run forever,
this would likely never return unless errors occurred or if
the step runner returns Next::Abort to abort prematurely.
sourcepub fn shutdown(&self)
pub fn shutdown(&self)
Send the shutdown signal to the background task without waiting for it to terminate.
Note that the waiting will still happen when the TaskHandle is
dropped.
This can be used to shutdown multiple tasks in parallel, and then wait for them to all terminate concurrently.
sourcepub fn shutdown_and_wait(self)
pub fn shutdown_and_wait(self)
Send the shutdown signal and wait for the task to terminate.
This is done implicitly by the TaskHandle when it is dropped.
sourcepub fn is_stopped(&self) -> bool
pub fn is_stopped(&self) -> bool
Check whether a background task has been stopped prematurely.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for TaskHandle
impl Send for TaskHandle
impl Sync for TaskHandle
impl Unpin for TaskHandle
impl !UnwindSafe for TaskHandle
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request