diff options
author | Eric Wong <e@80x24.org> | 2016-04-27 00:27:04 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-04-27 00:29:52 +0000 |
commit | 5a74026b580cefeb95d75db40e1a55cd0be52751 (patch) | |
tree | b2e82bbb74d28acea8081591511b66115e84cca1 /lib/yahns/proxy_pass.rb | |
parent | 40873caf4a71a56332d32e7f4086bf49ca6e3916 (diff) | |
download | yahns-5a74026b580cefeb95d75db40e1a55cd0be52751.tar.gz |
We don't want to wait on GC to reap sockets on errors, generational GC in Ruby is less aggressive about reaping long-lived objects such as long-lived HTTP connections.
Diffstat (limited to 'lib/yahns/proxy_pass.rb')
-rw-r--r-- | lib/yahns/proxy_pass.rb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/yahns/proxy_pass.rb b/lib/yahns/proxy_pass.rb index 511db02..148957b 100644 --- a/lib/yahns/proxy_pass.rb +++ b/lib/yahns/proxy_pass.rb @@ -63,7 +63,8 @@ class Yahns::ProxyPass # :nodoc: when Yahns::WbufCommon # streaming/buffering the response body - return c.proxy_response_finish(req, resbuf, self) + # we assign wbuf for rescue below: + return c.proxy_response_finish(req, wbuf = resbuf, self) end while true # case @resbuf @@ -79,7 +80,7 @@ class Yahns::ProxyPass # :nodoc: when Errno::ECONNREFUSED, Errno::ECONNRESET, Errno::EPIPE e.set_backtrace([]) end - c.proxy_err_response(502, self, e, nil) + c.proxy_err_response(502, self, e, wbuf) end # returns :wait_readable if complete, :wait_writable if not |