From a3a815c09cb2478b57b9af301bf021701b01abc2 Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Sat, 6 Aug 2016 00:11:45 -0700 Subject: [PATCH] perf(http): reduce server loops when headers and body are ready --- src/http/conn.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/http/conn.rs b/src/http/conn.rs index 8fa4caba..f8548325 100644 --- a/src/http/conn.rs +++ b/src/http/conn.rs @@ -324,7 +324,7 @@ impl> ConnInner { } }; let mut head = http::MessageHead::default(); - let interest = handler.on_outgoing(&mut head); + let mut interest = handler.on_outgoing(&mut head); if head.version == HttpVersion::Http11 { let mut buf = Vec::new(); let keep_alive = self.keep_alive_enabled && head.should_keep_alive(); @@ -339,6 +339,7 @@ impl> ConnInner { bytes: buf, pos: 0 }); + interest = handler.on_encode(&mut Encoder::h1(&mut encoder, &mut self.transport)); Writing::Ready(encoder) }, _ => Writing::Chunk(Chunk { @@ -370,7 +371,7 @@ impl> ConnInner { } Writing::Head => { let mut head = http::MessageHead::default(); - let interest = handler.on_outgoing(&mut head); + let mut interest = handler.on_outgoing(&mut head); // if the request wants to close, server cannot stop it if *keep_alive { // if the request wants to stay alive, then it depends @@ -389,6 +390,7 @@ impl> ConnInner { bytes: buf, pos: 0 }); + interest = handler.on_encode(&mut Encoder::h1(&mut encoder, &mut self.transport)); Writing::Ready(encoder) }, _ => Writing::Chunk(Chunk {