# File lib/typhoeus/hydra.rb, line 56
    def queue(request, obey_concurrency_limit = true)
      return if assign_to_stub(request)

      # At this point, we are running over live HTTP. Make sure we haven't
      # disabled live requests.
      check_allow_net_connect!(request)

      if @running_requests >= @max_concurrency && obey_concurrency_limit
        @queued_requests << request
      else
        if request.method == :get
          if @memoize_requests && @memoized_requests.has_key?(request.url)
            if response = @retrieved_from_cache[request.url]
              request.response = response
              request.call_handlers
            else
              @memoized_requests[request.url] << request
            end
          else
            @memoized_requests[request.url] = [] if @memoize_requests
            get_from_cache_or_queue(request)
          end
        else
          get_from_cache_or_queue(request)
        end
      end
    end