Implementation of a thread-safe in-memory LRU resolver cache.
Public Class methods
new()
[show source]
# File lib/httpx/resolver/cache/memory.rb 7 def initialize 8 super 9 @hostnames = [] 10 @lookups = Hash.new { |h, k| h[k] = [] } 11 @lookup_mutex = Thread::Mutex.new 12 end
Public Instance methods
evict(hostname, ip)
[show source]
# File lib/httpx/resolver/cache/memory.rb 27 def evict(hostname, ip) 28 ip = ip.to_s 29 30 synchronize do |lookups, hostnames| 31 _evict(hostname, ip, lookups, hostnames) 32 end 33 end
get(hostname)
[show source]
# File lib/httpx/resolver/cache/memory.rb 14 def get(hostname) 15 now = Utils.now 16 synchronize do |lookups, hostnames| 17 _get(hostname, lookups, hostnames, now) 18 end 19 end
set(hostname, family, entries)
[show source]
# File lib/httpx/resolver/cache/memory.rb 21 def set(hostname, family, entries) 22 synchronize do |lookups, hostnames| 23 _set(hostname, family, entries, lookups, hostnames) 24 end 25 end