From 8c949eedf8f6eb68ebabaabe278737e473e67409 Mon Sep 17 00:00:00 2001 From: Daniel Sharifi Date: Sat, 30 Aug 2025 23:01:14 +0000 Subject: [PATCH 1/4] added section on cancel safety --- tokio-util/src/time/delay_queue.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tokio-util/src/time/delay_queue.rs b/tokio-util/src/time/delay_queue.rs index a65101d163a..4fcccde2a1b 100644 --- a/tokio-util/src/time/delay_queue.rs +++ b/tokio-util/src/time/delay_queue.rs @@ -40,7 +40,7 @@ use std::task::{self, ready, Poll, Waker}; /// # `Stream` implementation /// /// Items are retrieved from the queue via [`DelayQueue::poll_expired`]. If no delays have -/// expired, no items are returned. In this case, `Poll::Pending` is returned and the +/// expired, no items are returned. In this case, [`Poll::Pending`] is returned and the /// current task is registered to be notified once the next item's delay has /// expired. /// @@ -66,9 +66,13 @@ use std::task::{self, ready, Poll, Waker}; /// Capacity can be checked using [`capacity`] and allocated preemptively by using /// the [`reserve`] method. /// +/// # Cancel safety +/// +/// [`DelayQueue`]'s implementation of [`futures::StreamExt::next`] is cancellation safe. +/// /// # Usage /// -/// Using `DelayQueue` to manage cache entries. +/// Using [`DelayQueue`] to manage cache entries. /// /// ```rust,no_run /// use tokio_util::time::{DelayQueue, delay_queue}; From de371aa72e8d630b5bf38a562785a28c060884b8 Mon Sep 17 00:00:00 2001 From: Daniel Sharifi Date: Sat, 30 Aug 2025 23:18:15 +0000 Subject: [PATCH 2/4] add link to StreamExt in doc --- tokio-util/src/time/delay_queue.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tokio-util/src/time/delay_queue.rs b/tokio-util/src/time/delay_queue.rs index 4fcccde2a1b..d0a7eb103f5 100644 --- a/tokio-util/src/time/delay_queue.rs +++ b/tokio-util/src/time/delay_queue.rs @@ -68,7 +68,7 @@ use std::task::{self, ready, Poll, Waker}; /// /// # Cancel safety /// -/// [`DelayQueue`]'s implementation of [`futures::StreamExt::next`] is cancellation safe. +/// [`DelayQueue`]'s implementation of [`StreamExt::next`] is cancellation safe. /// /// # Usage /// @@ -122,7 +122,8 @@ use std::task::{self, ready, Poll, Waker}; /// [`insert`]: method@Self::insert /// [`insert_at`]: method@Self::insert_at /// [`Key`]: struct@Key -/// [`Stream`]: https://docs.rs/futures/0.1/futures/stream/trait.Stream.html +/// [`Stream`]: https://docs.rs/futures/0.3.31/futures/stream/trait.Stream.html +/// [`StreamExt::next`]: https://docs.rs/futures/0.3.31/futures/stream/trait.StreamExt.html#method.next /// [`poll_expired`]: method@Self::poll_expired /// [`Stream::poll_expired`]: method@Self::poll_expired /// [`DelayQueue`]: struct@DelayQueue From 4ccaf9cfe0a359ad309c34384272a477288dfb16 Mon Sep 17 00:00:00 2001 From: Daniel Sharifi Date: Sun, 31 Aug 2025 10:31:18 +0000 Subject: [PATCH 3/4] link to `tokio_stream::StreamExt::next` in docs --- tokio-util/src/time/delay_queue.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tokio-util/src/time/delay_queue.rs b/tokio-util/src/time/delay_queue.rs index d0a7eb103f5..46cf63881a9 100644 --- a/tokio-util/src/time/delay_queue.rs +++ b/tokio-util/src/time/delay_queue.rs @@ -123,7 +123,7 @@ use std::task::{self, ready, Poll, Waker}; /// [`insert_at`]: method@Self::insert_at /// [`Key`]: struct@Key /// [`Stream`]: https://docs.rs/futures/0.3.31/futures/stream/trait.Stream.html -/// [`StreamExt::next`]: https://docs.rs/futures/0.3.31/futures/stream/trait.StreamExt.html#method.next +/// [`StreamExt::next`]: https://docs.rs/tokio-stream/0.1.17/tokio_stream/trait.StreamExt.html#method.next /// [`poll_expired`]: method@Self::poll_expired /// [`Stream::poll_expired`]: method@Self::poll_expired /// [`DelayQueue`]: struct@DelayQueue From 3a4b07596db7426e078c31c3a9ec544d72e17b95 Mon Sep 17 00:00:00 2001 From: Qi Date: Sun, 31 Aug 2025 18:39:02 +0800 Subject: [PATCH 4/4] replace "Cancel safety" with `Cancellation safety" --- tokio-util/src/time/delay_queue.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tokio-util/src/time/delay_queue.rs b/tokio-util/src/time/delay_queue.rs index 46cf63881a9..eff8cb1ae5d 100644 --- a/tokio-util/src/time/delay_queue.rs +++ b/tokio-util/src/time/delay_queue.rs @@ -66,7 +66,7 @@ use std::task::{self, ready, Poll, Waker}; /// Capacity can be checked using [`capacity`] and allocated preemptively by using /// the [`reserve`] method. /// -/// # Cancel safety +/// # Cancellation safety /// /// [`DelayQueue`]'s implementation of [`StreamExt::next`] is cancellation safe. ///