about summary refs log tree commit homepage
path: root/lib/rainbows/event_machine.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-11-07 01:26:04 -0800
committerEric Wong <normalperson@yhbt.net>2009-11-07 01:26:04 -0800
commit60900208616ee5b41716b23215a0fce33bc3eb5a (patch)
tree0047d36a21234ffe08483379e657aa7e84311337 /lib/rainbows/event_machine.rb
parentb36235131e0b5517fc5070c02c72be01c4b7f1f9 (diff)
downloadrainbows-60900208616ee5b41716b23215a0fce33bc3eb5a.tar.gz
Since the HTTP parser is frozen during app dispatch, there's
no point in checking for HTTP keepalive sooner.  Of course we
check G.alive as late as possible since we could've received a
:QUIT signal while app.call was running.
Diffstat (limited to 'lib/rainbows/event_machine.rb')
-rw-r--r--lib/rainbows/event_machine.rb3
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/rainbows/event_machine.rb b/lib/rainbows/event_machine.rb
index 5c25ade..7f77428 100644
--- a/lib/rainbows/event_machine.rb
+++ b/lib/rainbows/event_machine.rb
@@ -53,7 +53,6 @@ module Rainbows
       def app_call
         begin
           (@env[RACK_INPUT] = @input).rewind
-          alive = @hp.keepalive?
           @env[REMOTE_ADDR] = @remote_addr
           @env[ASYNC_CALLBACK] = method(:response_write)
 
@@ -64,7 +63,7 @@ module Rainbows
           # long-running async response
           (response.nil? || -1 == response.first) and return @state = :close
 
-          alive &&= G.alive
+          alive = @hp.keepalive? && G.alive
           out = [ alive ? CONN_ALIVE : CONN_CLOSE ] if @hp.headers?
           response_write(response, out, alive)