优化代码

This commit is contained in:
刘祥超
2023-10-03 21:38:45 +08:00
parent 1eca5099df
commit 5c5adf690f
6 changed files with 46 additions and 41 deletions

View File

@@ -16,7 +16,7 @@ import (
type OpenFileCache struct {
poolMap map[string]*OpenFilePool // file path => Pool
poolList *linkedlist.List
poolList *linkedlist.List[*OpenFilePool]
watcher *fsnotify.Watcher
locker sync.RWMutex
@@ -33,7 +33,7 @@ func NewOpenFileCache(maxSize int) (*OpenFileCache, error) {
var cache = &OpenFileCache{
maxSize: maxSize,
poolMap: map[string]*OpenFilePool{},
poolList: linkedlist.NewList(),
poolList: linkedlist.NewList[*OpenFilePool](),
}
watcher, err := fsnotify.NewWatcher()
@@ -105,7 +105,7 @@ func (this *OpenFileCache) Put(filename string, file *OpenFile) {
break
}
var headPool = head.Value.(*OpenFilePool)
var headPool = head.Value
headFile, consumed := headPool.Get()
if consumed {
this.count--
@@ -163,8 +163,8 @@ func (this *OpenFileCache) Debug() {
goman.New(func() {
for range ticker.C {
logs.Println("==== " + types.String(this.count) + " ====")
this.poolList.Range(func(item *linkedlist.Item) (goNext bool) {
logs.Println(filepath.Base(item.Value.(*OpenFilePool).Filename()), item.Value.(*OpenFilePool).Len())
this.poolList.Range(func(item *linkedlist.Item[*OpenFilePool]) (goNext bool) {
logs.Println(filepath.Base(item.Value.Filename()), item.Value.Len())
return true
})
}

View File

@@ -42,5 +42,7 @@ func TestNewOpenFileCache_CloseAll(t *testing.T) {
cache.Get("d.txt")
cache.CloseAll()
time.Sleep(6 * time.Second)
if testutils.IsSingleTesting() {
time.Sleep(6 * time.Second)
}
}

View File

@@ -9,7 +9,7 @@ import (
type OpenFilePool struct {
c chan *OpenFile
linkItem *linkedlist.Item
linkItem *linkedlist.Item[*OpenFilePool]
filename string
version int64
isClosed bool
@@ -21,7 +21,7 @@ func NewOpenFilePool(filename string) *OpenFilePool {
c: make(chan *OpenFile, 1024),
version: fasttime.Now().UnixMilli(),
}
pool.linkItem = linkedlist.NewItem(pool)
pool.linkItem = linkedlist.NewItem[*OpenFilePool](pool)
return pool
}