mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
lock the mutation of the create boolean for safety
This commit is contained in:
parent
8f0d626228
commit
dca8c07247
@ -64,12 +64,15 @@ type lazyMetric struct {
|
|||||||
isDeprecated bool
|
isDeprecated bool
|
||||||
isHidden bool
|
isHidden bool
|
||||||
isCreated bool
|
isCreated bool
|
||||||
|
createLock sync.RWMutex
|
||||||
markDeprecationOnce sync.Once
|
markDeprecationOnce sync.Once
|
||||||
createOnce sync.Once
|
createOnce sync.Once
|
||||||
self kubeCollector
|
self kubeCollector
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *lazyMetric) IsCreated() bool {
|
func (r *lazyMetric) IsCreated() bool {
|
||||||
|
r.createLock.RLock()
|
||||||
|
defer r.createLock.RUnlock()
|
||||||
return r.isCreated
|
return r.isCreated
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,6 +128,8 @@ func (r *lazyMetric) Create(version *semver.Version) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
r.createOnce.Do(func() {
|
r.createOnce.Do(func() {
|
||||||
|
r.createLock.Lock()
|
||||||
|
defer r.createLock.Unlock()
|
||||||
r.isCreated = true
|
r.isCreated = true
|
||||||
if r.IsDeprecated() {
|
if r.IsDeprecated() {
|
||||||
r.self.initializeDeprecatedMetric()
|
r.self.initializeDeprecatedMetric()
|
||||||
|
Loading…
Reference in New Issue
Block a user