Sha256: e4d16a2d1690020f964085c6c87756b8530bebc146d16b150f2975360ffce39a

Contents?: true

Size: 615 Bytes

Versions: 30

Compression:

Stored size: 615 Bytes

Contents

require 'thread'
require 'http/parser'
require 'socket'

def handle_client(client)
  Thread.new do
    parser = Http::Parser.new
    parser.on_message_complete = proc do |env|
      status_code = 200
      data = "Hello world!\n"
      headers = "Content-Length: #{data.bytesize}\r\n"
      client.write "HTTP/1.1 #{status_code}\r\n#{headers}\r\n#{data}"
    end
    loop do
      while data = client.readpartial(8192) rescue nil
        parser << data
      end
    end
    client.close
  end
end

server = TCPServer.open(1234)
puts "Listening on port 1234"
while socket = server.accept
  handle_client(socket)
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
polyphony-0.45.0 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.44.0 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43.11 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43.10 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43.9 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43.8 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43.6 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43.5 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43.4 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43.3 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43.2 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43.1 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.43 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.42 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.41 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.40 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.39 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.38 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.36 examples/performance/thread-vs-fiber/threaded_server.rb
polyphony-0.34 examples/performance/thread-vs-fiber/threaded_server.rb