Spec-Zone.ru › Tokio

Структура CtrlShutdown

pub struct CtrlShutdown { /* private fields */ }
Доступно только на Windows и при включённой возможности crate signal.

Представляет слушатель, который получает уведомления «ctrl-shutdown», отправленные процессу через SetConsoleCtrlHandler.

Уведомление, отправленное этому процессу, доставляется всем слушателям, ожидающим это событие. Кроме того, уведомления объединяются, если они обрабатываются недостаточно быстро. Это означает, что если два уведомления получены одно за другим, слушатель может получить только один элемент, соответствующий обоим уведомлениям.

Реализации

impl CtrlShutdown

pub async fn recv(&mut self) -> Option<()>

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

Хотя этот метод возвращает Option<()>, фактически он никогда не вернёт None. Эта возможность была добавлена случайно, и её удаление привело бы к несовместимому изменению.

Примеры
use tokio::signal::windows::ctrl_shutdown;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // A listener of CTRL-SHUTDOWN events.
    let mut signal = ctrl_shutdown()?;

    // Print whenever a CTRL-SHUTDOWN event is received.
    signal.recv().await;
    println!("got CTRL-SHUTDOWN. Cleaning up before exiting");

    Ok(())
}

pub fn poll_recv(&mut self, cx: &mut Context<'_>) -> Poll<Option<()>>

Ожидает получения следующего события уведомления о сигнале вне контекста async.

Хотя этот метод возвращает Option<()>, фактически он никогда не вернёт None. Эта возможность была добавлена случайно, и её удаление привело бы к несовместимому изменению.

Примеры

Ожидание сигнала из вручную реализованного future

use std::pin::Pin;
use std::future::Future;
use std::task::{Context, Poll};
use tokio::signal::windows::CtrlShutdown;

struct MyFuture {
    ctrl_shutdown: CtrlShutdown,
}

impl Future for MyFuture {
    type Output = Option<()>;

    fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
        println!("polling MyFuture");
        self.ctrl_shutdown.poll_recv(cx)
    }
}

Реализации трейтов

impl Debug for CtrlShutdown

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

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

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

impl !RefUnwindSafe for CtrlShutdown

impl !UnwindSafe for CtrlShutdown

impl Freeze for CtrlShutdown

impl Send for CtrlShutdown

impl Sync for CtrlShutdown

impl Unpin for CtrlShutdown

impl UnsafeUnpin for CtrlShutdown

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

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> 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, 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/signal/windows/struct.CtrlShutdown.html

Spec-Zone.ru

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