Browse Source

clean up validity map

v2ray 9 năm trước cách đây
mục cha
commit
9457c4b349
1 tập tin đã thay đổi với 11 bổ sung8 xóa
  1. 11 8
      common/collect/validity_map.go

+ 11 - 8
common/collect/validity_map.go

@@ -3,17 +3,15 @@ package collect
 import (
 	"sync"
 	"sync/atomic"
+
+	"github.com/v2ray/v2ray-core/common"
 )
 
 type Validity interface {
+	common.Releasable
 	IsValid() bool
 }
 
-type entry struct {
-	key   string
-	value Validity
-}
-
 type ValidityMap struct {
 	sync.RWMutex
 	cache   map[string]Validity
@@ -28,6 +26,11 @@ func NewValidityMap(cleanupIntervalSec int) *ValidityMap {
 }
 
 func (this *ValidityMap) cleanup() {
+	type entry struct {
+		key   string
+		value Validity
+	}
+
 	entry2Remove := make([]entry, 0, 128)
 	this.RLock()
 	for key, value := range this.cache {
@@ -40,10 +43,10 @@ func (this *ValidityMap) cleanup() {
 	}
 	this.RUnlock()
 
-	for _, entry := range entry2Remove {
-		if !entry.value.IsValid() {
+	for _, e := range entry2Remove {
+		if !e.value.IsValid() {
 			this.Lock()
-			delete(this.cache, entry.key)
+			delete(this.cache, e.key)
 			this.Unlock()
 		}
 	}