From 819a85f59aad5f8e1e8a46f9bba705cb31db7af5 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 13 Jan 2021 13:14:48 -0800 Subject: [PATCH] avoid viper concurrent access --- weed/util/config.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/weed/util/config.go b/weed/util/config.go index 54edf5a3c..e746b0bd1 100644 --- a/weed/util/config.go +++ b/weed/util/config.go @@ -58,6 +58,30 @@ func (vp *ViperProxy) SetDefault(key string, value interface{}) { vp.Viper.SetDefault(key, value) } +func (vp *ViperProxy) GetString(key string) string { + vp.Lock() + defer vp.Unlock() + return vp.Viper.GetString(key) +} + +func (vp *ViperProxy) GetBool(key string) bool { + vp.Lock() + defer vp.Unlock() + return vp.Viper.GetBool(key) +} + +func (vp *ViperProxy) GetInt(key string) int { + vp.Lock() + defer vp.Unlock() + return vp.Viper.GetInt(key) +} + +func (vp *ViperProxy) GetStringSlice(key string) []string { + vp.Lock() + defer vp.Unlock() + return vp.Viper.GetStringSlice(key) +} + func GetViper() *ViperProxy { v := &ViperProxy{} v.Viper = viper.GetViper()