# File lib/phusion_passenger/rack/out_of_band_gc.rb, line 46
  def call(env)
    status, headers, body = @app.call(env)

    case @strategy
    when :counting
      @mutex.synchronize do
        @request_count += 1
        if @request_count == @frequency
          @request_count = 0
          headers['X-Passenger-Request-OOB-Work'] = 'true'
        end
      end

    when :gctools_oobgc
      if GC::OOB.dry_run
        headers['X-Passenger-Request-OOB-Work'] = 'true'
      end

    else
      raise "Unrecognized Out-Of-Band GC strategy #{@strategy.inspect}"
    end

    [status, headers, body]
  end