This better aligns with behavior of other real-world Rack servers such as puma and Thin. We will also now use kgio writev functionality to speed up writing "Transfer-Encoding: chunked" to avoid string copies or extra syscalls for other chunking solutions.
See [PATCH 3/4] for a small informal benchmark. 4 changes response: drop clients after HTTP responses of unknown length response: reduce stack overhead for parameter passing response: support auto-chunking for HTTP/1.1 Revert "document Rack::Chunked/ContentLength semi-requirements" Documentation/yahns-rackup.pod | 10 ------- examples/yahns_rack_basic.conf.rb | 6 ----- lib/yahns/chunk_body.rb | 27 +++++++++++++++++++ lib/yahns/http_client.rb | 24 ++++++++--------- lib/yahns/http_response.rb | 47 +++++++++++++++++++++++--------- test/test_auto_chunk.rb | 56 +++++++++++++++++++++++++++++++++++++++ test/test_extras_exec_cgi.rb | 4 +-- 7 files changed, 130 insertions(+), 44 deletions(-) create mode 100644 lib/yahns/chunk_body.rb create mode 100644 test/test_auto_chunk.rb -- EW -- unsubscribe: [email protected] archive: https://yhbt.net/yahns-public/
