lib/slack/real_time/concurrency/celluloid.rb in slack-ruby-client-0.13.0 vs lib/slack/real_time/concurrency/celluloid.rb in slack-ruby-client-0.13.1

- old
+ new

@@ -66,19 +66,34 @@ logger.debug("#{self.class}##{__method__}") { data } socket.write(data) end def start_async(client) - Thread.new do - client.run_loop - end + @client = client + Actor.new(future.run_client_loop) end + def run_client_loop + @client.run_loop + end + def connected? !@connected.nil? end protected + + class Actor + attr_reader :future + + def initialize(future) + @future = future + end + + def join + @future.value + end + end def build_socket socket = ::Celluloid::IO::TCPSocket.new(addr, port) socket = ::Celluloid::IO::SSLSocket.new(socket, build_ssl_context) if secure? socket