class Async::HTTP::Protocol::HTTP2::Server
def create_stream(stream_id)
def create_stream(stream_id) request = Request.new(self, stream_id) return request.stream end
def each(task: Task.current)
def each(task: Task.current) while request = @requests.dequeue @count += 1 task.async do begin response = yield(request) rescue # We need to close the stream if the user code blows up while generating a response: request.stream.send_reset_stream(::Protocol::HTTP2::INTERNAL_ERROR) raise else request.send_response(response) end end end end
def initialize(stream)
def initialize(stream) @stream = stream framer = ::Protocol::HTTP2::Framer.new(stream) super(framer) @requests = Async::Queue.new end
def stop_connection(error)
def stop_connection(error) super @requests.enqueue nil end