From 7e7a811717769fe2af76d02d96a9b6980dcdaac9 Mon Sep 17 00:00:00 2001 From: Mikhail Mazurskiy Date: Sat, 12 Aug 2017 17:24:32 +1000 Subject: [PATCH] Cleanup locking in configz - Reduce scope of lock in write() method - User read lock in write() method --- pkg/util/configz/configz.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/util/configz/configz.go b/pkg/util/configz/configz.go index bed7c96148..cc2aa3a9fe 100644 --- a/pkg/util/configz/configz.go +++ b/pkg/util/configz/configz.go @@ -75,9 +75,13 @@ func handle(w http.ResponseWriter, r *http.Request) { } func write(w io.Writer) error { - configsGuard.Lock() - defer configsGuard.Unlock() - b, err := json.Marshal(configs) + var b []byte + var err error + func() { + configsGuard.RLock() + defer configsGuard.RUnlock() + b, err = json.Marshal(configs) + }() if err != nil { return fmt.Errorf("error marshaling json: %v", err) }