aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/metal/live.rb
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2016-08-16 09:54:28 +0930
committerGitHub <noreply@github.com>2016-08-16 09:54:28 +0930
commitd0bdd74d7f6fae3d69b3681d5bc2d5ef6f55a0f8 (patch)
tree5bfa3f6120f2599cebe8df72471d9e5038df69a0 /actionpack/lib/action_controller/metal/live.rb
parentce234237b580011acca600ede6eb422fcf8f4b45 (diff)
parent285d7cad6a4b93cdeea469e6cc4504a934907746 (diff)
downloadrails-d0bdd74d7f6fae3d69b3681d5bc2d5ef6f55a0f8.tar.gz
rails-d0bdd74d7f6fae3d69b3681d5bc2d5ef6f55a0f8.tar.bz2
rails-d0bdd74d7f6fae3d69b3681d5bc2d5ef6f55a0f8.zip
Merge pull request #26177 from achinn/ac-live-deadlock
Fix ActionController::Live deadlock
Diffstat (limited to 'actionpack/lib/action_controller/metal/live.rb')
-rw-r--r--actionpack/lib/action_controller/metal/live.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/live.rb b/actionpack/lib/action_controller/metal/live.rb
index a18055c899..26a16104db 100644
--- a/actionpack/lib/action_controller/metal/live.rb
+++ b/actionpack/lib/action_controller/metal/live.rb
@@ -205,7 +205,12 @@ module ActionController
private
def each_chunk(&block)
- while str = @buf.pop
+ loop do
+ str = nil
+ ActiveSupport::Dependencies.interlock.permit_concurrent_loads do
+ str = @buf.pop
+ end
+ break unless str
yield str
end
end