diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-11-04 09:43:35 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-11-04 10:48:29 +0100 |
commit | c97216e4f0f3021b12cd3803e512393be569c886 (patch) | |
tree | 5ca01ac3c5ba53f8dde249a6494fcb55fccdde02 /i18n | |
parent | bb04010cbfd92837685f98c3e0f5362ba00ce487 (diff) |
i18n: Prevent data race in lang code handling
See #3564
Diffstat (limited to 'i18n')
-rw-r--r-- | i18n/i18n.go | 2 | ||||
-rw-r--r-- | i18n/translationProvider.go | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/i18n/i18n.go b/i18n/i18n.go index 73417fb32..6cc3d0b33 100644 --- a/i18n/i18n.go +++ b/i18n/i18n.go @@ -68,7 +68,9 @@ func (t Translator) initFuncs(bndl *bundle.Bundle) { currentLang := lang t.translateFuncs[currentLang] = func(translationID string, args ...interface{}) string { + tpMu.RLock() tFunc, err := bndl.Tfunc(currentLang) + tpMu.RUnlock() if err != nil { jww.WARN.Printf("could not load translations for language %q (%s), will use default content language.\n", lang, err) } diff --git a/i18n/translationProvider.go b/i18n/translationProvider.go index 663a8dd5e..556ee7a92 100644 --- a/i18n/translationProvider.go +++ b/i18n/translationProvider.go @@ -25,7 +25,7 @@ import ( // Unfortunately this needs to be global, see // https://github.com/nicksnyder/go-i18n/issues/82 -var tpMu sync.Mutex +var tpMu sync.RWMutex // TranslationProvider provides translation handling, i.e. loading // of bundles etc. |