class Fibre::Rack::FiberPool
Public Class Methods
new(app, options={}) { |pool| ... }
click to toggle source
# File lib/fibre/rack/fiber_pool.rb, line 4 def initialize(app, options={}) @app = app yield Fibre.pool if block_given? @rescue_exception = options[:rescue_exception] || (->(env, ex) { [500, {}, ["Internal Server Error"]] }) end
Public Instance Methods
call(env)
click to toggle source
# File lib/fibre/rack/fiber_pool.rb, line 10 def call(env) call_app = lambda do result = @app.call(env) env['async.callback'].call result end Fibre.pool.checkout(&call_app) throw :async rescue => ex @rescue_exception[env, ex] end