Sha256: f62d6166675f42f943b0d827a4741156fba7fbb66cb3dd4e6b071710007793e4

Contents?: true

Size: 478 Bytes

Versions: 4

Compression:

Stored size: 478 Bytes

Contents

require 'active_support/dependencies'
require 'rack/body_proxy'

module ActionDispatch
  class LoadInterlock
    def initialize(app)
      @app = app
    end

    def call(env)
      interlock = ActiveSupport::Dependencies.interlock
      interlock.start_running
      response = @app.call(env)
      body = Rack::BodyProxy.new(response[2]) { interlock.done_running }
      response[2] = body
      response
    ensure
      interlock.done_running unless body
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
actionpack-5.0.0.beta3 lib/action_dispatch/middleware/load_interlock.rb
actionpack-5.0.0.beta2 lib/action_dispatch/middleware/load_interlock.rb
actionpack-5.0.0.beta1.1 lib/action_dispatch/middleware/load_interlock.rb
actionpack-5.0.0.beta1 lib/action_dispatch/middleware/load_interlock.rb