diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-05-17 17:38:12 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-05-17 17:41:42 -0700 |
commit | 5e4f790847198e1267b2fbd5decfa09e5cc3d618 (patch) | |
tree | a800bc5cb56961c6c3030c41053256e7bc895075 | |
parent | bc4f5510cd0e5ccf85f077cca019bca70309bf01 (diff) | |
download | rainbows-5e4f790847198e1267b2fbd5decfa09e5cc3d618.tar.gz |
io_splice 4.1.1 works around issues with socket buffers filling up pipe buffers on blocking splice. See http://lkml.org/lkml/2009/1/13/478 for a better explanation.
-rw-r--r-- | lib/rainbows/configurator.rb | 4 | ||||
-rw-r--r-- | t/test_isolate.rb | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/rainbows/configurator.rb b/lib/rainbows/configurator.rb index a1d90cb..1b93fc7 100644 --- a/lib/rainbows/configurator.rb +++ b/lib/rainbows/configurator.rb @@ -190,7 +190,9 @@ module Rainbows::Configurator # end # # Keep in mind that splice(2) itself is a relatively new system call - # and has been buggy in many older Linux kernels. + # and has been buggy in many older Linux kernels. If you're proxying + # the output of sockets to the client, be sure to use "io_splice" + # 4.1.1 or later to avoid stalling responses. # # Default: IO on Ruby 1.9+, false otherwise def copy_stream(klass) diff --git a/t/test_isolate.rb b/t/test_isolate.rb index fe2aebc..562f1b6 100644 --- a/t/test_isolate.rb +++ b/t/test_isolate.rb @@ -41,7 +41,7 @@ Isolate.now!(opts) do gem 'sleepy_penguin', '2.0.0' # is 2.6.32 new enough? - gem 'io_splice', '4.1.0' if `uname -r`.strip > '2.6.32' + gem 'io_splice', '4.1.1' if `uname -r`.strip > '2.6.32' end end |