From 1479e926ef9a199f47eee5f0e3270f7c7e9ff207 Mon Sep 17 00:00:00 2001 From: Jono MacDougall Date: Wed, 1 Feb 2017 12:26:03 +0000 Subject: [PATCH 1/2] fix a very rare map race --- utils.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils.go b/utils.go index 25e3a4f9..6e5faaee 100644 --- a/utils.go +++ b/utils.go @@ -19,12 +19,15 @@ func init() { } var smap = map[string]string{} -var mutex = &sync.Mutex{} +var mutex = &sync.RWMutex{} func ToDBName(name string) string { + mutex.RLock() if v, ok := smap[name]; ok { + mutex.RUnlock() return v } + mutex.RUnlock() value := commonInitialismsReplacer.Replace(name) buf := bytes.NewBufferString("") From 796905a6e9c7617558a4e3bd4a49a189443ef672 Mon Sep 17 00:00:00 2001 From: Jono MacDougall Date: Wed, 1 Feb 2017 12:28:00 +0000 Subject: [PATCH 2/2] one unlock pls --- utils.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utils.go b/utils.go index 6e5faaee..34891bbc 100644 --- a/utils.go +++ b/utils.go @@ -23,11 +23,11 @@ var mutex = &sync.RWMutex{} func ToDBName(name string) string { mutex.RLock() - if v, ok := smap[name]; ok { - mutex.RUnlock() + v, ok := smap[name] + mutex.RUnlock() + if ok { return v } - mutex.RUnlock() value := commonInitialismsReplacer.Replace(name) buf := bytes.NewBufferString("")