From a2295236b67ae5bffd346a0b9590748db48ccd4e Mon Sep 17 00:00:00 2001
From: Eric Wong <e@80x24.org>
Date: Fri, 24 Jun 2016 23:40:03 +0000
Subject: [PATCH] http: cork chunked responses for small savings

This only affects Linux users with MSG_MORE support.

We can avoid extra TCP overhead for sub-optimal chunk sizes
by using MSG_MORE even with chunk trailers under Linux.

This breaks real-time apps which require <= 200ms latency for
streaming small packets (e.g. implementing "tail -F"), but the
public-inbox WWW code does not (and will never) do such things.
---
 lib/PublicInbox/HTTP.pm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/PublicInbox/HTTP.pm b/lib/PublicInbox/HTTP.pm
index c141fc89..e19c592c 100644
--- a/lib/PublicInbox/HTTP.pm
+++ b/lib/PublicInbox/HTTP.pm
@@ -223,7 +223,10 @@ sub chunked_wcb ($) {
 		return if $_[0] eq '';
 		more($self, sprintf("%x\r\n", bytes::length($_[0])));
 		more($self, $_[0]);
-		$self->write("\r\n");
+
+		# use $self->write("\n\n") if you care about real-time
+		# streaming responses, public-inbox WWW does not.
+		more($self, "\r\n");
 	}
 }
 
-- 
2.51.0