about summary refs log tree commit homepage
path: root/lib/rainbows/rev/deferred_response.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rainbows/rev/deferred_response.rb')
-rw-r--r--lib/rainbows/rev/deferred_response.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/rainbows/rev/deferred_response.rb b/lib/rainbows/rev/deferred_response.rb
index abf3514..9c3c27f 100644
--- a/lib/rainbows/rev/deferred_response.rb
+++ b/lib/rainbows/rev/deferred_response.rb
@@ -10,6 +10,10 @@ module Rainbows
       G = Rainbows::G
       HH = Rack::Utils::HeaderHash
 
+      # we only want to attach to the Rev::Loop belonging to the
+      # main thread in Ruby 1.9
+      LOOP = ::Rev::Loop.default
+
       def self.defer!(client, response, out)
         body = response.last
         headers = HH.new(response[1])
@@ -32,7 +36,7 @@ module Rainbows
             out[0] = CONN_CLOSE
           end
 
-          io = new(io, client, do_chunk, body).attach(::Rev::Loop.default)
+          io = new(io, client, do_chunk, body).attach(LOOP)
         elsif st.file?
           headers.delete('Transfer-Encoding')
           headers['Content-Length'] ||= st.size.to_s