diff --git a/sqlx-core/src/pool/inner.rs b/sqlx-core/src/pool/inner.rs index f9e5df43b3..be326e0aea 100644 --- a/sqlx-core/src/pool/inner.rs +++ b/sqlx-core/src/pool/inner.rs @@ -184,6 +184,10 @@ impl SharedPool { future::poll_fn(|cx| -> Poll<()> { let waiter = waiter.get_or_insert_with(|| Waiter::push_new(cx, &self.waiters)); + if !self.idle_conns.is_empty() { + return Poll::Ready(()); + } + if waiter.is_woken() { waiter.actually_woke = true; Poll::Ready(())