diff --git a/lib/action_cable/subscription_adapter/solid_cable.rb b/lib/action_cable/subscription_adapter/solid_cable.rb index 2c476e9..15d3d02 100644 --- a/lib/action_cable/subscription_adapter/solid_cable.rb +++ b/lib/action_cable/subscription_adapter/solid_cable.rb @@ -53,6 +53,7 @@ def initialize(event_loop) @critical = Concurrent::Semaphore.new(0) @reconnect_attempt = 0 + @last_id = last_message_id @thread = Thread.new do Thread.current.name = "solid_cable_listener" @@ -113,12 +114,7 @@ def invoke_callback(*) private attr_reader :event_loop, :thread - attr_writer :last_id - attr_accessor :reconnect_attempt - - def last_id - @last_id ||= last_message_id - end + attr_accessor :last_id, :reconnect_attempt def last_message_id ::SolidCable::Message.maximum(:id) || 0 diff --git a/test/lib/action_cable/subscription_adapter/solid_cable_test.rb b/test/lib/action_cable/subscription_adapter/solid_cable_test.rb index 73c2bf9..dac6e2d 100644 --- a/test/lib/action_cable/subscription_adapter/solid_cable_test.rb +++ b/test/lib/action_cable/subscription_adapter/solid_cable_test.rb @@ -212,7 +212,6 @@ def subscribe_as_queue(channel, adapter = @rx_adapter) subscribed = Concurrent::Event.new adapter.subscribe(channel, callback, proc { subscribed.set }) subscribed.wait(WAIT_WHEN_EXPECTING_EVENT) - sleep WAIT_WHEN_EXPECTING_EVENT assert_predicate subscribed, :set? yield queue