diff --git a/tokio-postgres/src/connection.rs b/tokio-postgres/src/connection.rs index b7b5fa17..6a9ae27a 100644 --- a/tokio-postgres/src/connection.rs +++ b/tokio-postgres/src/connection.rs @@ -198,6 +198,14 @@ where return Ok(false); } + if let Poll::Pending = Pin::new(&mut self.stream) + .poll_ready(cx) + .map_err(Error::io)? + { + trace!("poll_write: waiting on socket"); + return Ok(false); + } + let request = match self.poll_request(cx) { Poll::Ready(Some(request)) => request, Poll::Ready(None) if self.responses.is_empty() && self.state == State::Active => { @@ -220,15 +228,6 @@ where } }; - if let Poll::Pending = Pin::new(&mut self.stream) - .poll_ready(cx) - .map_err(Error::io)? - { - trace!("poll_write: waiting on socket"); - self.pending_request = Some(request); - return Ok(false); - } - match request { RequestMessages::Single(request) => { Pin::new(&mut self.stream)