aboutsummaryrefslogtreecommitdiffstats
path: root/actioncable/lib/action_cable/channel/streams.rb
diff options
context:
space:
mode:
authorpalkan <dementiev.vm@gmail.com>2016-09-19 12:29:23 +0300
committerpalkan <dementiev.vm@gmail.com>2016-09-20 19:42:24 +0300
commit03a209e92aeed1e724b3ff787ec77936b7163ca5 (patch)
treecba7736f79df8686f1906ed7d9316c00afd02c97 /actioncable/lib/action_cable/channel/streams.rb
parent254db4987d03d3c9d3fca1e2961da8fd7dd0e06b (diff)
downloadrails-03a209e92aeed1e724b3ff787ec77936b7163ca5.tar.gz
rails-03a209e92aeed1e724b3ff787ec77936b7163ca5.tar.bz2
rails-03a209e92aeed1e724b3ff787ec77936b7163ca5.zip
[Fix #25381] Avoid race condition on subscription confirmation
Diffstat (limited to 'actioncable/lib/action_cable/channel/streams.rb')
-rw-r--r--actioncable/lib/action_cable/channel/streams.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/actioncable/lib/action_cable/channel/streams.rb b/actioncable/lib/action_cable/channel/streams.rb
index 561750d713..c9b58f3a04 100644
--- a/actioncable/lib/action_cable/channel/streams.rb
+++ b/actioncable/lib/action_cable/channel/streams.rb
@@ -84,7 +84,8 @@ module ActionCable
connection.server.event_loop.post do
pubsub.subscribe(broadcasting, handler, lambda do
- transmit_subscription_confirmation
+ @defer_subscription_confirmation_counter.decrement
+ transmit_subscription_confirmation unless defer_subscription_confirmation?
logger.info "#{self.class.name} is streaming from #{broadcasting}"
end)
end