class Async::HTTP::Body::Pipe

def writer(task)

If the @tail is closed, this will cause chunk to be nil, which in turn will call `@output.close` and `@head.close`
Read from the head of the pipe and write to the @output stream.
def writer(task)
	@writer = task
	
	task.annotate "pipe writer"
	
	while chunk = @head.read_partial
		@output.write(chunk)
	end
ensure
	@writer = nil
	
	@output.close($!)
	
	@head.close if @reader.nil?
end