class Typhoeus::Hydra

def queue(request, obey_concurrency_limit = true)

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