Spec-Zone.ru › Tokio

Структура AbortHandle

pub struct AbortHandle { /* private fields */ }
Доступно только при включённой функции crate 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, который можно использовать для удалённого прерывания этой задачи.

1.0.0 (const: нестабилен) ·

fn clone_from(&mut self, source: &Self)

Выполняет копирующее присваивание из source. Подробнее

impl Debug for AbortHandle

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Форматирует значение с помощью указанного форматтера. Подробнее

impl Drop for AbortHandle

fn drop(&mut self)

Выполняет деструктор для этого типа. Подробнее

fn pin_drop(self: Pin<&mut Self>)

🔬Это экспериментальный API, доступный только в nightly-сборке. (pin_ergonomics)
Выполняет деструктор для этого типа, но, в отличие от Drop::drop, требует, чтобы self был закреплён. Подробнее

impl RefUnwindSafe for AbortHandle

impl Send for AbortHandle

impl Sync for AbortHandle

impl UnwindSafe for AbortHandle

Автоматические реализации трейтов

impl Freeze for AbortHandle

impl Unpin for AbortHandle

impl UnsafeUnpin for AbortHandle

Общие реализации

impl<T> Any for T
where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

Получает TypeId для self. Подробнее

impl<T> Borrow<T> for T
where T: ?Sized,

fn borrow(&self) -> &T

Неизменяемо заимствует значение из владеющего значения. Подробнее

impl<T> BorrowMut<T> for T
where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

Изменяемо заимствует значение из владеющего значения. Подробнее

impl<T> CloneToUninit for T
where T: Clone,

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬Это экспериментальный API, доступный только в nightly-версии. (clone_to_uninit)
Выполняет присваивание копированием из self в dest. Подробнее

impl<T> From<T> for T

fn from(t: T) -> T

Возвращает аргумент без изменений.

impl<T> Instrument for T

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Инструментирует этот тип с помощью предоставленного Span, возвращая обёртку Instrumented. Подробнее

fn in_current_span(self) -> Instrumented<Self> ⓘ

Инструментирует этот тип с помощью текущего Span, возвращая обёртку Instrumented. Подробнее

impl<T, U> Into<U> for T
where U: From<T>,

fn into(self) -> U

Вызывает U::from(self).

То есть это преобразование выполняет то, что выберет реализация From<T> for U.

impl<T> ToOwned for T
where T: Clone,

type Owned = T

Тип, полученный в результате перехода во владение.

fn to_owned(&self) -> T

Создаёт владеющие данные из заимствованных данных, обычно путём клонирования. Подробнее

fn clone_into(&self, target: &mut T)

Использует заимствованные данные для замены владеющих данных, обычно путём клонирования. Подробнее

impl<T, U> TryFrom<U> for T
where U: Into<T>,

type Error = Infallible

Тип, возвращаемый в случае ошибки преобразования.

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Выполняет преобразование.

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error

Тип, возвращаемый в случае ошибки преобразования.

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Выполняет преобразование.

impl<T> WithSubscriber for T

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Присоединяет предоставленный Subscriber к этому типу, возвращая обёртку WithDispatch. Подробнее

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API