Selaa lähdekoodia

cmd/strelaypoolsrv: Simplify LRU usage (#6507)

greatroar 5 vuotta sitten
vanhempi
sitoutus
674a99e9ae
1 muutettua tiedostoa jossa 8 lisäystä ja 12 poistoa
  1. 8 12
      cmd/strelaypoolsrv/main.go

+ 8 - 12
cmd/strelaypoolsrv/main.go

@@ -589,19 +589,15 @@ func limit(addr string, cache *lru.Cache, lock sync.Mutex, intv time.Duration, b
 	}
 	}
 
 
 	lock.Lock()
 	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 {
 func loadRelays(file string) []*relay {