Sha256: 3892cb1813907223cc40d8897054150375ccd95704e4002a51a00af7d0fde752
Contents?: true
Size: 573 Bytes
Versions: 45
Compression:
Stored size: 573 Bytes
Contents
# frozen_string_literal: true require_relative 'body_proxy' module Rack # Rack::Lock locks every request inside a mutex, so that every request # will effectively be executed synchronously. class Lock def initialize(app, mutex = Mutex.new) @app, @mutex = app, mutex end def call(env) @mutex.lock begin response = @app.call(env) returned = response << BodyProxy.new(response.pop) { unlock } ensure unlock unless returned end end private def unlock @mutex.unlock end end end
Version data entries
45 entries across 44 versions & 9 rubygems