From 674a99e9ae1e664c640d19173570d5bb8bf460f4 Mon Sep 17 00:00:00 2001 From: greatroar <61184462+greatroar@users.noreply.github.com> Date: Mon, 6 Apr 2020 12:43:56 +0200 Subject: [PATCH] cmd/strelaypoolsrv: Simplify LRU usage (#6507) --- cmd/strelaypoolsrv/main.go | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/cmd/strelaypoolsrv/main.go b/cmd/strelaypoolsrv/main.go index 47e2a8de8..0c5bd4f00 100644 --- a/cmd/strelaypoolsrv/main.go +++ b/cmd/strelaypoolsrv/main.go @@ -589,19 +589,15 @@ func limit(addr string, cache *lru.Cache, lock sync.Mutex, intv time.Duration, b } lock.Lock() - bkt, ok := cache.Get(addr) - if ok { - lock.Unlock() - bkt := bkt.(*rate.Limiter) - if !bkt.Allow() { - // Rate limit - return true - } - } else { - cache.Add(addr, rate.NewLimiter(rate.Every(intv), burst)) - lock.Unlock() + v, _ := cache.Get(addr) + bkt, ok := v.(*rate.Limiter) + if !ok { + bkt = rate.NewLimiter(rate.Every(intv), burst) + cache.Add(addr, bkt) } - return false + lock.Unlock() + + return !bkt.Allow() } func loadRelays(file string) []*relay {