diff --git a/lib/src/protocol/kawa_h1/mod.rs b/lib/src/protocol/kawa_h1/mod.rs index a4378fd97..4180eeffe 100644 --- a/lib/src/protocol/kawa_h1/mod.rs +++ b/lib/src/protocol/kawa_h1/mod.rs @@ -648,10 +648,13 @@ impl Http { + SocketResult::Closed => { warn!("=====back_readable:{:?}/{}", socket_state, self.response_stream.is_initial()); self.backend_readiness.event.remove(Ready::READABLE); } + SocketResult::WouldBlock => { + self.backend_readiness.event.remove(Ready::READABLE); + } SocketResult::Continue => {} } @@ -1251,6 +1254,9 @@ impl Http { @@ -1446,8 +1452,9 @@ impl Http break, - Ok(sz) => size += sz, + Ok(sz) => { + size += sz; + can_read = false; + } Err(e) => match e.kind() { ErrorKind::WouldBlock => { break;