class Async::HTTP::Protocol::HTTP2::Response::Stream

def receive_initial_headers(headers, end_stream)

This should be invoked from the background reader, and notifies the task waiting for the headers that we are done.
def receive_initial_headers(headers, end_stream)
	headers.each do |key, value|
		# It's guaranteed that this should be the first header:
		if key == STATUS
			status = Integer(value)
			
			# Ignore informational headers:
			return if status >= 100 && status < 200
			
			@response.status = Integer(value)
		elsif key == PROTOCOL
			@response.protocol = value
		elsif key == CONTENT_LENGTH
			@length = Integer(value)
		else
			add_header(key, value)
		end
	end
	
	@response.headers = @headers
	
	if @response.valid?
		if !end_stream
			# We only construct the input/body if data is coming.
			@response.body = prepare_input(@length)
		elsif @response.head?
			@response.body = ::Protocol::HTTP::Body::Head.new(@length)
		end
	else
		send_reset_stream(::Protocol::HTTP2::Error::PROTOCOL_ERROR)
	end
	
	self.notify!
	
	return headers
end