diff --git a/futures-util/src/stream/futures_ordered.rs b/futures-util/src/stream/futures_ordered.rs index 6dc07adf16..5dbd4ae338 100644 --- a/futures-util/src/stream/futures_ordered.rs +++ b/futures-util/src/stream/futures_ordered.rs @@ -1,7 +1,7 @@ use crate::stream::{FuturesUnordered, StreamExt}; use futures_core::future::Future; use futures_core::stream::Stream; -use futures_core::task::{Context, Poll}; +use futures_core::{FusedStream, task::{Context, Poll}}; use pin_project::pin_project; use core::cmp::Ordering; use core::fmt::{self, Debug}; @@ -203,6 +203,12 @@ impl FromIterator for FuturesOrdered { } } +impl FusedStream for FuturesOrdered { + fn is_terminated(&self) -> bool { + self.in_progress_queue.is_terminated() && self.queued_outputs.is_empty() + } +} + impl Extend for FuturesOrdered { fn extend(&mut self, iter: I) where