1 Star 1 Fork 0

D10.天地弦 / gobase

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
gologmultifile.go 803 Bytes
一键复制 编辑 原始数据 按行查看 历史
D10.天地弦 提交于 2024-01-14 17:53 . * golog整理
package golog
import (
"sync"
)
type MultiFile struct {
lk sync.RWMutex
lstMap map[string]*SingleCacheFileWriter
}
func NewMultiFile() *MultiFile {
rval := &MultiFile{
lstMap: make(map[string]*SingleCacheFileWriter),
}
return rval
}
var (
DefaultMultiFile = NewMultiFile()
)
func (this *MultiFile) CheckGet(filename string) *SingleCacheFileWriter {
this.lk.RLock()
rval := this.lstMap[filename]
this.lk.RUnlock()
if rval != nil {
return rval
}
this.lk.Lock()
defer this.lk.Unlock()
rval = this.lstMap[filename]
if rval == nil {
rval = NewSingleCacheFileWriter(filename)
this.lstMap[filename] = rval
}
return rval
}
func (this *MultiFile) Close() {
this.lk.Lock()
defer this.lk.Unlock()
for k, itm := range this.lstMap {
itm.Close()
delete(this.lstMap, k)
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ymofen/gobase.git
git@gitee.com:ymofen/gobase.git
ymofen
gobase
gobase
v1.2.24053

搜索帮助

344bd9b3 5694891 D2dac590 5694891