diff --git a/pageserver/src/tenant/storage_layer.rs b/pageserver/src/tenant/storage_layer.rs index c522e88b89..f56f9bf6e4 100644 --- a/pageserver/src/tenant/storage_layer.rs +++ b/pageserver/src/tenant/storage_layer.rs @@ -23,6 +23,7 @@ use std::future::Future; use std::ops::Range; use std::pin::Pin; use std::sync::Arc; +use std::task::Poll; use std::time::{Duration, SystemTime, UNIX_EPOCH}; use utils::lsn::Lsn; @@ -182,7 +183,13 @@ impl IoConcurrency { tokio::spawn(fut); } IoConcurrency::FuturesUnordered { futures } => { - futures.push(Box::pin(fut)); + let mut fut = Box::pin(fut); + match futures::poll!(&mut fut) { + Poll::Ready(()) => {} + Poll::Pending => { + futures.push(fut); + } + } } } }