diff --git a/src/http/conn.rs b/src/http/conn.rs index 05792d5c..e7c7934b 100644 --- a/src/http/conn.rs +++ b/src/http/conn.rs @@ -595,13 +595,6 @@ impl> Conn { } } - if events.is_hup() { - trace!("Conn::ready got hangup"); - let _ = scope.deregister(&self.0.transport); - self.on_remove(); - return ReadyResult::Done(None); - } - // if the user had an io interest, but the transport was blocked differently, // the event needs to be translated to what the user was actually expecting. // @@ -642,6 +635,13 @@ impl> Conn { self.0.on_writable(scope); } + if events.is_hup() { + trace!("Conn::ready got hangup"); + let _ = scope.deregister(&self.0.transport); + self.on_remove(); + return ReadyResult::Done(None); + } + let mut events = match self.0.register() { Reg::Read => EventSet::readable(), Reg::Write => EventSet::writable(),