aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-12-30 16:43:44 +0100
committerMartin Polden <mpolden@mpolden.no>2019-12-30 16:43:44 +0100
commite6d2c75780bcf161ea75c5a6f2dc43cfc93ecfe4 (patch)
tree5df4880ba2d43a1fc2200739456e477a7be4c79a
parent091d5f5857f76c9271fd8386ac534677c8080460 (diff)
Add lock contention TODO
-rw-r--r--cache/cache.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/cache/cache.go b/cache/cache.go
index 3b650e9..4a51963 100644
--- a/cache/cache.go
+++ b/cache/cache.go
@@ -164,11 +164,12 @@ func (c *Cache) Reset() {
func (c *Cache) prefetch() bool { return c.client != nil }
func (c *Cache) refreshExpired(interval time.Duration) {
+ // TODO: Reduce lock contention for large caches. Consider sync.Map
c.mu.Lock()
defer c.mu.Unlock()
evicted := make(map[uint64]bool)
for k, v := range c.values {
- // Value will expiry before the next interval. Refresh now
+ // Value will expire before the next interval. Refresh now
if c.isExpiredAfter(interval, v) {
q := v.msg.Question[0]
msg := dns.Msg{}