From 029233b845c1e72de10b9a3cbb434134340af8e5 Mon Sep 17 00:00:00 2001 From: artem_danilov Date: Wed, 22 Jan 2025 17:18:24 -0800 Subject: [PATCH] wrap list and mutex into struct Signed-off-by: artem_danilov --- client/metrics/metrics.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/client/metrics/metrics.go b/client/metrics/metrics.go index 1c8c152ea2d..2ced64c2d48 100644 --- a/client/metrics/metrics.go +++ b/client/metrics/metrics.go @@ -30,21 +30,23 @@ func init() { initRegisteredConsumers() } -var mutex sync.Mutex -var consumersInitializers []func() +var consumersInitializers = struct { + sync.Mutex + value []func() +}{} // RegisterConsumer registers a consumer to be initialized when the metrics are (re)initialized. func RegisterConsumer(initConsumer func()) { - mutex.Lock() - defer mutex.Unlock() - consumersInitializers = append(consumersInitializers, initConsumer) + consumersInitializers.Lock() + defer consumersInitializers.Unlock() + consumersInitializers.value = append(consumersInitializers.value, initConsumer) initConsumer() } func initRegisteredConsumers() { - mutex.Lock() - defer mutex.Unlock() - for _, initConsumer := range consumersInitializers { + consumersInitializers.Lock() + defer consumersInitializers.Unlock() + for _, initConsumer := range consumersInitializers.value { initConsumer() } }