about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-05-17 17:38:12 -0700
committerEric Wong <normalperson@yhbt.net>2011-05-17 17:41:42 -0700
commit5e4f790847198e1267b2fbd5decfa09e5cc3d618 (patch)
treea800bc5cb56961c6c3030c41053256e7bc895075 /lib
parentbc4f5510cd0e5ccf85f077cca019bca70309bf01 (diff)
downloadrainbows-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.
Diffstat (limited to 'lib')
-rw-r--r--lib/rainbows/configurator.rb4
1 files changed, 3 insertions, 1 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)