about summary refs log tree commit homepage
path: root/lib/rainbows/event_machine/client.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-12-30 08:32:27 +0000
committerEric Wong <normalperson@yhbt.net>2011-01-04 16:21:17 -0800
commited28feabd79697cb27722036622aeca1fbf0723d (patch)
tree5ca7a6d91bc3e6df69c54de70157f90440a0c664 /lib/rainbows/event_machine/client.rb
parentc38bc88363d4c4f5f639540ca86f4dd1225df79e (diff)
downloadrainbows-ed28feabd79697cb27722036622aeca1fbf0723d.tar.gz
No need to pass unnecessary variables to response_pipe,
just let the client handle it all.
Diffstat (limited to 'lib/rainbows/event_machine/client.rb')
-rw-r--r--lib/rainbows/event_machine/client.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/rainbows/event_machine/client.rb b/lib/rainbows/event_machine/client.rb
index 0b46b42..6863be0 100644
--- a/lib/rainbows/event_machine/client.rb
+++ b/lib/rainbows/event_machine/client.rb
@@ -91,11 +91,11 @@ class Rainbows::EventMachine::Client < EM::Connection
         end
         return
       elsif st.socket? || st.pipe?
-        @body = io = body_to_io(body)
+        io = body_to_io(@body = body)
         chunk = stream_response_headers(status, headers) if headers
         m = chunk ? Rainbows::EventMachine::ResponseChunkPipe :
                     Rainbows::EventMachine::ResponsePipe
-        return EM.watch(io, m, self, alive, body).notify_readable = true
+        return EM.watch(io, m, self).notify_readable = true
       end
       # char or block device... WTF? fall through to body.each
     end
@@ -106,6 +106,7 @@ class Rainbows::EventMachine::Client < EM::Connection
   end
 
   def next!
+    @body.close if @body.respond_to?(:close)
     @hp.keepalive? ? receive_data(@body = nil) : quit
   end