From dba9c2c47d557ba937c8c095b83c4edcdbc177bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Sat, 9 Apr 2022 18:44:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96ttlcache?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/ttlcache/cache.go | 2 +- internal/ttlcache/cache_test.go | 7 +++++++ internal/ttlcache/manager.go | 6 ++++++ internal/waf/checkpoints/cc2.go | 2 +- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/internal/ttlcache/cache.go b/internal/ttlcache/cache.go index 9d1fa35..e0a669c 100644 --- a/internal/ttlcache/cache.go +++ b/internal/ttlcache/cache.go @@ -54,7 +54,7 @@ func NewCache(opt ...OptionInterface) *Cache { } } - cache := &Cache{ + var cache = &Cache{ countPieces: uint64(countPieces), maxItems: maxItems, } diff --git a/internal/ttlcache/cache_test.go b/internal/ttlcache/cache_test.go index 9e2a54a..71b80ee 100644 --- a/internal/ttlcache/cache_test.go +++ b/internal/ttlcache/cache_test.go @@ -165,6 +165,13 @@ func TestCache_GC2(t *testing.T) { } } +func TestCacheDestroy(t *testing.T) { + var cache = NewCache() + t.Log("count:", SharedManager.Count()) + cache.Destroy() + t.Log("count:", SharedManager.Count()) +} + func BenchmarkNewCache(b *testing.B) { runtime.GOMAXPROCS(1) diff --git a/internal/ttlcache/manager.go b/internal/ttlcache/manager.go index 2fd81ab..67ddc84 100644 --- a/internal/ttlcache/manager.go +++ b/internal/ttlcache/manager.go @@ -52,3 +52,9 @@ func (this *Manager) Remove(cache *Cache) { delete(this.cacheMap, cache) this.locker.Unlock() } + +func (this *Manager) Count() int { + this.locker.Lock() + defer this.locker.Unlock() + return len(this.cacheMap) +} diff --git a/internal/waf/checkpoints/cc2.go b/internal/waf/checkpoints/cc2.go index 9d7d122..d7980a6 100644 --- a/internal/waf/checkpoints/cc2.go +++ b/internal/waf/checkpoints/cc2.go @@ -11,7 +11,7 @@ import ( "time" ) -var ccCache = ttlcache.NewCache(ttlcache.NewPiecesOption(32)) +var ccCache = ttlcache.NewCache() // CC2Checkpoint 新的CC type CC2Checkpoint struct {