class Falcon::Adapters::Hijack

def self.for(env, block, socket = nil, task: Async::Task.current)

def self.for(env, block, socket = nil, task: Async::Task.current)
	input = env[Rack::RACK_INPUT]
	output = Async::HTTP::Body::Writable.new
	
	stream = Hijack.new(input, output, socket)
	
	task.async do
		begin
			block.call(stream)
		ensure
			stream.close
		end
	end
	
	return output
end