Skip to content

Commit a3a815c

Browse files
committed
perf(http): reduce server loops when headers and body are ready
1 parent 523b890 commit a3a815c

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/http/conn.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ impl<K: Key, T: Transport, H: MessageHandler<T>> ConnInner<K, T, H> {
324324
}
325325
};
326326
let mut head = http::MessageHead::default();
327-
let interest = handler.on_outgoing(&mut head);
327+
let mut interest = handler.on_outgoing(&mut head);
328328
if head.version == HttpVersion::Http11 {
329329
let mut buf = Vec::new();
330330
let keep_alive = self.keep_alive_enabled && head.should_keep_alive();
@@ -339,6 +339,7 @@ impl<K: Key, T: Transport, H: MessageHandler<T>> ConnInner<K, T, H> {
339339
bytes: buf,
340340
pos: 0
341341
});
342+
interest = handler.on_encode(&mut Encoder::h1(&mut encoder, &mut self.transport));
342343
Writing::Ready(encoder)
343344
},
344345
_ => Writing::Chunk(Chunk {
@@ -370,7 +371,7 @@ impl<K: Key, T: Transport, H: MessageHandler<T>> ConnInner<K, T, H> {
370371
}
371372
Writing::Head => {
372373
let mut head = http::MessageHead::default();
373-
let interest = handler.on_outgoing(&mut head);
374+
let mut interest = handler.on_outgoing(&mut head);
374375
// if the request wants to close, server cannot stop it
375376
if *keep_alive {
376377
// if the request wants to stay alive, then it depends
@@ -389,6 +390,7 @@ impl<K: Key, T: Transport, H: MessageHandler<T>> ConnInner<K, T, H> {
389390
bytes: buf,
390391
pos: 0
391392
});
393+
interest = handler.on_encode(&mut Encoder::h1(&mut encoder, &mut self.transport));
392394
Writing::Ready(encoder)
393395
},
394396
_ => Writing::Chunk(Chunk {

0 commit comments

Comments
 (0)