def post_process(result)
return unless result
result = result.to_a
return if result.first == AsyncResponse.first
@response.status, @response.headers, @response.body = *result
log_error("Rack application returned nil body. " \
"Probably you wanted it to be an empty string?") if @response.body.nil?
@response.skip_body! if @request.head?
@response.persistent! if @request.persistent?
@response.each do |chunk|
trace chunk
send_data chunk
end
rescue Exception => e
unexpected_error(e)
close_connection
ensure
if @response.body.respond_to?(:callback) && @response.body.respond_to?(:errback)
@response.body.callback { terminate_request }
@response.body.errback { terminate_request }
else
terminate_request unless result && result.first == AsyncResponse.first
end
end