def getaddress(name)
      unless @cache[name]
        @mutex.synchronize do
          @cache[name] ||= CachedValue.new(@ttl)
        end
      end
      @cache[name].get_or_refresh{ resolve(name) }
    end
def getaddress(name)
      unless @cache[name]
        @mutex.synchronize do
          @cache[name] ||= CachedValue.new(@ttl)
        end
      end
      @cache[name].get_or_refresh{ resolve(name) }
    end
TODO: negative caching not implemented
 DEFAULT_NEGATIVE_CACHE = false # disabled
TODO: DNS RoundRobin with resolv
 DEFAULT_SUPPORTS_DNS_RR = false