Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Send headers and body in one write if possible #279

Merged
merged 1 commit into from
Dec 19, 2015
Merged

Conversation

tarcieri
Copy link
Member

This change tries to avoid a pathological case with Nagle's algorithm where two small writes that would fit in a single TCP packet are performed in a row (headers and body).

Instead, it tries to perform a single write if possible.

cc @nerdrew @zanker

This change tries to avoid a pathological case with Nagle's algorithm where two
small writes that would fit in a single TCP packet are performed in a row
(headers and body).

Instead, it tries to perform a single write if possible.
tarcieri added a commit that referenced this pull request Dec 19, 2015
Send headers and body in one write if possible
@tarcieri tarcieri merged commit 156e714 into master Dec 19, 2015
@tarcieri tarcieri deleted the tarcieri/nagle-fix branch December 19, 2015 22:05
jsonn pushed a commit to jsonn/pkgsrc that referenced this pull request Jan 3, 2016
## 1.0.1 (2015-12-27)

* [#283](httprb/http#283):
  Use io/wait on supported platforms.
  ([@tarcieri])

## 1.0.0 (2015-12-25)

* [#265](httprb/http#265):
  Remove deprecations ([@tarcieri]):
  - HTTP::Chainable#with_follow (use #follow)
  - HTTP::Chainable#with, #with_headers (use #headers)
  - HTTP::Chainable#auth(:basic, ...) (use #basic_auth)
  - HTTP::Chainable#default_headers (use #default_options[:headers])
  - HTTP::Headers#append (use #add)
  - HTTP::Options#[] hash-like API deprecated in favor of explicit methods
  - HTTP::Request#request_header (use #headline)
  - HTTP::Response::STATUS_CODES (use HTTP::Status::REASONS)
  - HTTP::Response::SYMBOL_TO_STATUS_CODE (no replacement)
  - HTTP::Response#status_code (use #status or #code)
  - HTTP::Response::Status#symbolize (use #to_sym)

* [#269](httprb/http#273):
  Close connection in case of error during request.
  ([@ixti])

* [#271](httprb/http#273):
  High-level exception wrappers for low-level I/O errors.
  ([@ixti])

* [#273](httprb/http#273):
  Add encoding option.
  ([@Connorhd])

* [#275](httprb/http#273):
  Support for disabling Nagle's algorithm with `HTTP.nodelay`.
  ([@nerdrew])

* [#276](httprb/http#276)
  Use Encoding::BINARY as the default encoding for HTTP::Response::Body.
  ([@tarcieri])

* [#278](httprb/http#278)
  Use an options hash for HTTP::Request initializer API.
  ([@ixti])

* [#279](httprb/http#279)
  Send headers and body in one write if possible.
  This avoids a pathological case in Nagle's algorithm.
  ([@tarcieri])

* [#281](httprb/http#281)
  Remove legacy 'Http' constant alias to 'HTTP'.
  ([@tarcieri])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant