solid_cable 3.0.9 → 3.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3fafe8af9b261e7adba2e7b99b129b17c55b46392b2cea439f1e777cef31504b
4
- data.tar.gz: a679eb8d733d200096a9c8d68dae373fa2d7e5be8c6997d0e921d33b44859ab8
3
+ metadata.gz: fccedecff40c474f2882095d7d8dd3f79ed000fe852ec83a227a0c4ae53f8130
4
+ data.tar.gz: de880460edfb1524f09c8425079a2256ea3d420c5b5cdf9cf6f820cb3c012933
5
5
  SHA512:
6
- metadata.gz: eb568512d91c70cc77245c86d69136f763f2969c0fdbc9b5d4284faf552c1c1f8ca0bba13cec656192741aee2978c6a0f001e1659f050ad3086b30ce46905fd6
7
- data.tar.gz: f5bcec74d6a197dd3481d36d233e68b1cd430c48fc40c09524060ee3129ff33f1c631c8f6589301a81cf1b28ba906a0369481d5ef9ae55fe7061b452478968ef
6
+ metadata.gz: c35d6b76724809ce6b93bb206d95743409484f9726a9697ae5406521c4952d590661352c3f2292d2945dc0b7953e1a3ab1dd251517550e6b51089c7059fc144d
7
+ data.tar.gz: 32efff41d4eee4d79f34e20fe89475ea8131f2ceaf7da8da92e071eb00ebb0c7ae5388e73357112948ae6771ffede8cd7678a3fe1aca8250570e193d1213cf63
@@ -109,17 +109,22 @@ module ActionCable
109
109
  end
110
110
 
111
111
  def channels
112
- @channels ||= Concurrent::Hash.new
112
+ @channels ||= Concurrent::Map.new
113
113
  end
114
114
 
115
115
  def broadcast_messages
116
- ::SolidCable::Message.broadcastable(channels.keys, channels.values.min).
116
+ current_channels = channels.dup
117
+
118
+ ::SolidCable::Message.
119
+ broadcastable(current_channels.keys, current_channels.values.min).
117
120
  each do |message|
118
- if channels[message.channel].present? && channels[message.channel] < message.id
119
- broadcast(message.channel, message.payload)
120
- channels[message.channel] = message.id
121
+ channels.compute_if_present(message.channel) do |last_id|
122
+ break if last_id >= message.id
123
+
124
+ broadcast(message.channel, message.payload)
125
+ message.id
126
+ end
121
127
  end
122
- end
123
128
  end
124
129
 
125
130
  def with_polling_volume
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidCable
4
- VERSION = "3.0.9"
4
+ VERSION = "3.0.11"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_cable
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.9
4
+ version: 3.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Pezza