lib/slack/real_time/concurrency/celluloid.rb in slack-ruby-client-0.7.6 vs lib/slack/real_time/concurrency/celluloid.rb in slack-ruby-client-0.7.7
- old
+ new
@@ -36,14 +36,17 @@
driver.start
loop { read } if socket
rescue EOFError => e
logger.debug("#{self.class}##{__method__}") { e }
driver.emit(:close, WebSocket::Driver::CloseEvent.new(1001, 'server closed connection')) unless @closing
+ ensure
+ current_actor.terminate if current_actor.alive?
end
def close
@closing = true
driver.close
+ super
end
def read
buffer = socket.readpartial(BLOCK_SIZE)
async.handle_read(buffer)