Struct sc_service::TaskManager [−][src]
Helper struct to manage background/async tasks in Service.
Implementations
impl TaskManager
[src]
pub fn spawn_handle(&self) -> SpawnTaskHandle
[src]
Get a handle for spawning tasks.
pub fn spawn_essential_handle(&self) -> SpawnEssentialTaskHandle
[src]
Get a handle for spawning essential tasks.
pub fn clean_shutdown(self) -> Pin<Box<dyn Future<Output = ()> + Send>>
[src]
Send the signal for termination, prevent new tasks to be created, await for all the existing tasks to be finished and drop the object. You can consider this as an async drop.
It’s always better to call and await this function before exiting the process as background tasks may be running in the background. If the process exit and the background tasks are not cancelled, this will lead to objects not getting dropped properly.
This is an issue in some cases as some of our dependencies do require that we drop all the objects properly otherwise it triggers a SIGABRT on exit.
pub fn future<'a>(
&'a mut self
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
[src]
&'a mut self
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Return a future that will end with success if the signal to terminate was sent
(self.terminate()
) or with an error if an essential task fails.
Warning
This function will not wait until the end of the remaining task. You must call and await
clean_shutdown()
after this.
pub fn terminate(&mut self)
[src]
Signal to terminate all the running tasks.
pub fn keep_alive<T: 'static + Send + Sync>(&mut self, to_keep_alive: T)
[src]
Set what the task manager should keep alive, can be called multiple times.
pub fn add_child(&mut self, child: TaskManager)
[src]
Register another TaskManager to terminate and gracefully shutdown when the parent
terminates and gracefully shutdown. Also ends the parent future()
if a child’s essential
task fails. (But don’t end the parent if a child’s normal task fails.)
Auto Trait Implementations
impl !RefUnwindSafe for TaskManager
impl Send for TaskManager
impl !Sync for TaskManager
impl Unpin for TaskManager
impl !UnwindSafe for TaskManager
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,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
pub fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
pub fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<T> Erased for T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, Outer> IsWrappedBy<Outer> for T where
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
[src]
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
pub fn from_ref(outer: &Outer) -> &T
[src]
Get a reference to the inner from the outer.
pub fn from_mut(outer: &mut Outer) -> &mut T
[src]
Get a mutable reference to the inner from the outer.
impl<T> Pointable for T
[src]
pub const ALIGN: usize
[src]
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
[src]
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
[src]
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
[src]
pub unsafe fn drop(ptr: usize)
[src]
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
[src]
pub fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
[src]
Self: UniqueSaturatedFrom<T>,
pub fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
[src]
Self: UniqueSaturatedInto<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
[src]
T: UncheckedFrom<S>,
pub fn unchecked_into(self) -> T
[src]
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
[src]
T: Bounded,
S: TryInto<T>,
pub fn unique_saturated_into(self) -> T
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,