Sha256: d5bec953b2f65b693be43fa47fc99904e7dc036fa8a195db89783fa3fd6cb377

Contents?: true

Size: 680 Bytes

Versions: 1

Compression:

Stored size: 680 Bytes

Contents

module Backport
  module Server
    # A mixin for Backport servers that communicate with clients.
    #
    # Connectable servers check clients for incoming data on each tick.
    #
    module Connectable
      # def tick
      #   mutex.synchronize do
      #     # clients.each(&:tick)
      #     clients.delete_if(&:stopped?)
      #   end
      # end

      def starting
        clients.map(&:run)
      end

      def stopping
        clients.map(&:stop)
      end

      # @return [Array<Client>]
      def clients
        @clients ||= []
      end

      private

      def mutex
        @mutex ||= Mutex.new
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
backport-1.1.0 lib/backport/server/connectable.rb