class Net::Socket::TCP::Server
Public Instance Methods
each_request(async = false, &block)
click to toggle source
# File lib/net/socket/tcp/server.rb, line 6 def each_request(async = false, &block) if async each_request_async(&block) else each_request_sync(&block) end end
wait()
click to toggle source
# File lib/net/socket/tcp/server.rb, line 14 def wait IO.select([socket]) until socket.closed? rescue # We don't care about IO.select-related exceptions, # so we just ignore them and return. end
Private Instance Methods
each_request_async(&block)
click to toggle source
# File lib/net/socket/tcp/server.rb, line 26 def each_request_async(&block) Thread.new do loop do Thread.new(accept(), block) do |request, block| handle_request(request, &block) end end end # Return nil to avoid collecting references to Threads. nil end
each_request_sync(&block)
click to toggle source
# File lib/net/socket/tcp/server.rb, line 22 def each_request_sync(&block) loop { handle_request(accept(), &block) } end
handle_request(request) { |request| ... }
click to toggle source
# File lib/net/socket/tcp/server.rb, line 39 def handle_request(request, &block) yield request request.close end