Files
kubesphere/vendor/github.com/jszwec/csvutil/cache_go17.go
2021-03-16 10:27:20 +08:00

31 lines
424 B
Go

// +build !go1.9
package csvutil
import (
"sync"
)
var fieldCache = struct {
mtx sync.RWMutex
m map[typeKey][]field
}{m: make(map[typeKey][]field)}
func cachedFields(k typeKey) fields {
fieldCache.mtx.RLock()
fields, ok := fieldCache.m[k]
fieldCache.mtx.RUnlock()
if ok {
return fields
}
fields = buildFields(k)
fieldCache.mtx.Lock()
fieldCache.m[k] = fields
fieldCache.mtx.Unlock()
return fields
}