Структура Abort Handle
pub struct AbortHandle { /* private fields */ }
rt.Владеющее разрешение на прерывание запущенной задачи без ожидания её завершения.
В отличие от JoinHandle, AbortHandle не предоставляет разрешение ожидать завершения задачи, а лишь позволяет её прервать.
Задачу можно прервать, вызвав метод AbortHandle::abort. Удаление AbortHandle освобождает разрешение на прерывание задачи — оно не прерывает задачу.
Обратите внимание: задачи, запущенные с помощью spawn_blocking, нельзя прервать, поскольку они не являются асинхронными. Если вызвать abort для задачи spawn_blocking, это не окажет никакого эффекта, и задача продолжит выполняться в обычном режиме. Исключение — если задача ещё не начала выполняться; в этом случае вызов abort может помешать её запуску.
Реализации
impl AbortHandle
pub fn abort(&self)
Прерывает задачу, связанную с этим дескриптором.
Ожидание отменённой задачи может завершиться обычным образом, если на момент отмены задача уже была завершена, но, скорее всего, оно завершится ошибкой отменённой JoinError.
Если задача уже была отменена, например с помощью JoinHandle::abort, этот метод ничего не сделает.
Обратите внимание: задачи, запущенные с помощью spawn_blocking, нельзя прервать, поскольку они не являются асинхронными. Если вызвать abort для задачи spawn_blocking, это не окажет никакого эффекта, и задача продолжит выполняться в обычном режиме. Исключение — если задача ещё не начала выполняться; в этом случае вызов abort может помешать её запуску.
Подробнее об отмене см. также документацию модуля.
pub fn is_finished(&self) -> bool
Проверяет, завершилась ли задача, связанная с этим AbortHandle.
Обратите внимание: этот метод может вернуть false, даже если для задачи был вызван abort. Это связано с тем, что процесс отмены может занять некоторое время, и метод не возвращает true до его завершения.
pub fn id(&self) -> Id
Возвращает идентификатор задачи, который однозначно отличает эту задачу от других задач, запущенных в данный момент.
Реализации трейтов
impl Clone for AbortHandle
fn clone(&self) -> Self
Возвращает клонированный AbortHandle, который можно использовать для удалённого прерывания этой задачи.
fn clone_from(&mut self, source: &Self)
source. Подробнее
impl Debug for AbortHandle
impl Drop for AbortHandle
impl RefUnwindSafe for AbortHandle
impl Send for AbortHandle
impl Sync for AbortHandle
impl UnwindSafe for AbortHandle
Автоматические реализации трейтов
Общие реализации
impl<T> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for Twhere T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)
impl<T> Instrument for T
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> ToOwned for Twhere T: Clone,
type Owned = T
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)
impl<T> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Subscriber к этому типу, возвращая обёртку WithDispatch. Подробнее
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/task/struct.AbortHandle.html