Sha256: b698847d3e5d16fe20027b20d64cc0a5757a0b26c29ecbca472dd47916a1b256

Contents?: true

Size: 615 Bytes

Versions: 6

Compression:

Stored size: 615 Bytes

Contents

require 'demo_socket'
require 'socket'

module Server
  def run_server(addr, port, &block)
    @_server_threads ||= {}
    @_server_instances ||= {}

    key = "#{addr}:#{port}"

    @_server_threads[key] = Thread.new {
      server = TCPServer.new(addr, port)
      @_server_instances[key] = server
      loop do
        client_socket = DemoSocket.new(server.accept)
        yield client_socket
      end
    }
  end

  def shutdown_server(addr, port)
    key = "#{addr}:#{port}"

    inst = @_server_instances[key]
    inst.shutdown if inst

    thread = @_server_threads[key]
    thread.kill if thread
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
bum-0.0.17 lib/server.rb
bum-0.0.16 lib/server.rb
bum-0.0.15 lib/server.rb
bum-0.0.14 lib/server.rb
bum-0.0.13 lib/server.rb
bum-0.0.12 lib/server.rb