From b4d82c3e70a63d2ca59de813b9f106d6b4af7db5 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 23 Apr 2022 10:12:24 +0100 Subject: [PATCH] docs: `Signal::recv` is cancel-safe (#4634) --- tokio/src/macros/select.rs | 1 + tokio/src/signal/unix.rs | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/tokio/src/macros/select.rs b/tokio/src/macros/select.rs index 5ec0c881c..f38aee0f2 100644 --- a/tokio/src/macros/select.rs +++ b/tokio/src/macros/select.rs @@ -101,6 +101,7 @@ /// * [`tokio::sync::watch::Receiver::changed`](crate::sync::watch::Receiver::changed) /// * [`tokio::net::TcpListener::accept`](crate::net::TcpListener::accept) /// * [`tokio::net::UnixListener::accept`](crate::net::UnixListener::accept) +/// * [`tokio::signal::unix::Signal::recv`](crate::signal::unix::Signal::recv) /// * [`tokio::io::AsyncReadExt::read`](crate::io::AsyncReadExt::read) on any `AsyncRead` /// * [`tokio::io::AsyncReadExt::read_buf`](crate::io::AsyncReadExt::read_buf) on any `AsyncRead` /// * [`tokio::io::AsyncWriteExt::write`](crate::io::AsyncWriteExt::write) on any `AsyncWrite` diff --git a/tokio/src/signal/unix.rs b/tokio/src/signal/unix.rs index 139d7834f..11f848b5a 100644 --- a/tokio/src/signal/unix.rs +++ b/tokio/src/signal/unix.rs @@ -407,6 +407,12 @@ impl Signal { /// /// `None` is returned if no more events can be received by this stream. /// + /// # Cancel safety + /// + /// This method is cancel safe. If you use it as the event in a + /// [`tokio::select!`](crate::select) statement and some other branch + /// completes first, then it is guaranteed that no signal is lost. + /// /// # Examples /// /// Wait for SIGHUP