mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
16 lines
308 B
Ruby
16 lines
308 B
Ruby
module ActionController
|
|
class Lock
|
|
FLAG = 'rack.multithread'.freeze
|
|
|
|
def initialize(app, lock = Mutex.new)
|
|
@app, @lock = app, lock
|
|
end
|
|
|
|
def call(env)
|
|
old, env[FLAG] = env[FLAG], false
|
|
@lock.synchronize { @app.call(env) }
|
|
ensure
|
|
env[FLAG] = old
|
|
end
|
|
end
|
|
end
|