ensure responses get passed through even if not running under thin
This commit is contained in:
parent
4a658a84d8
commit
fd5a05afae
@ -18,7 +18,7 @@ class FileStreamer
|
||||
end
|
||||
end
|
||||
|
||||
# then respond with a FileStreamer
|
||||
# then respond with a `FileStreamer`
|
||||
|
||||
def call(env)
|
||||
# ... do stuff ...
|
||||
@ -44,3 +44,5 @@ use Rack::EMStream do |exception, environment|
|
||||
end
|
||||
```
|
||||
|
||||
I'm still pretty n00b to async stuff, so if you have suggestions, let me know!
|
||||
|
||||
|
@ -21,27 +21,31 @@ module Rack
|
||||
|
||||
result[2].close if result[2].respond_to?(:close)
|
||||
|
||||
EM.next_tick {
|
||||
env['async.callback'].call [ result[0], result[1], self ]
|
||||
if env['async.callback']
|
||||
EM.next_tick {
|
||||
env['async.callback'].call [ result[0], result[1], self ]
|
||||
|
||||
begin
|
||||
result[2].each { |data|
|
||||
EM.next_tick {
|
||||
begin
|
||||
@callback.call(data)
|
||||
rescue => e
|
||||
@callback.call(@block.call(e, env)) if @block
|
||||
end
|
||||
begin
|
||||
result[2].each { |data|
|
||||
EM.next_tick {
|
||||
begin
|
||||
@callback.call(data)
|
||||
rescue => e
|
||||
@callback.call(@block.call(e, env)) if @block
|
||||
end
|
||||
}
|
||||
}
|
||||
}
|
||||
rescue => e
|
||||
@callback.call(@block.call(e, env)) if @block
|
||||
end
|
||||
rescue => e
|
||||
@callback.call(@block.call(e, env)) if @block
|
||||
end
|
||||
|
||||
EM.next_tick { succeed }
|
||||
}
|
||||
EM.next_tick { succeed }
|
||||
}
|
||||
|
||||
throw :async
|
||||
throw :async
|
||||
else
|
||||
result
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,5 +1,5 @@
|
||||
module Rack
|
||||
class EMStream
|
||||
VERSION = "0.1.3"
|
||||
VERSION = "0.1.4"
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user