From 285d7cad6a4b93cdeea469e6cc4504a934907746 Mon Sep 17 00:00:00 2001 From: Alex Chinn Date: Mon, 15 Aug 2016 17:08:46 -0400 Subject: Fix deadlock that can occur when child live thread tries to load a constant after writing to the stream. --- actionpack/lib/action_controller/metal/live.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'actionpack/lib/action_controller/metal/live.rb') 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 -- cgit v1.2.3