about summary refs log tree commit homepage
path: root/HACKING
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2016-05-03 02:34:57 +0000
committerEric Wong <e@80x24.org>2016-05-03 09:12:42 +0000
commit1bd4f49d3e6e19f71d170058cc8c6cb466dc5b9f (patch)
tree966c920f4bbb367cf43af4ab997ec2eabe789bd3 /HACKING
parentce44148b662558922523465f29d372912b7c6a61 (diff)
downloadpublic-inbox-1bd4f49d3e6e19f71d170058cc8c6cb466dc5b9f.tar.gz
When serving large static files or large packs, we may call
Danga::Socket::write directly to queue up callbacks to resume
reading and defer firing them until the socket is writable.
This prevents us from scheduling writes or buffering until we
know the socket is writable and prevents needless buffering by
Danga::Socket when faced with slow clients.

For smart clones, this comes at the cost of throttling the
output of "git pack-objects" to the speed of the client
connection.  This is probably not ideal, but is the behavior of
the standard git-daemon, too; and is preferable to running the
httpd out-of-memory.  Buffering to the filesystem may be an
option in the future...
Diffstat (limited to 'HACKING')
0 files changed, 0 insertions, 0 deletions