From 8908e1d95d7e36a38cccda2b4fe32ce5aab9b967 Mon Sep 17 00:00:00 2001 From: Matt Reiferson Date: Tue, 9 Sep 2014 17:24:12 -0400 Subject: [PATCH] nsqadmin: only parse templates once --- nsqadmin/templates/templates.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/nsqadmin/templates/templates.go b/nsqadmin/templates/templates.go index 263b04800..e0354d2e3 100644 --- a/nsqadmin/templates/templates.go +++ b/nsqadmin/templates/templates.go @@ -3,9 +3,11 @@ package templates import ( "html/template" "log" + "sync" ) var sources map[string]string +var parser sync.Once var T *template.Template func init() { @@ -24,10 +26,12 @@ func registerTemplate(name string, source string) { } func Parse() { - for name, source := range sources { - _, err := T.New(name).Parse(source) - if err != nil { - log.Fatalf("ERROR: failed to parse template %s - %s", name, err) + parser.Do(func() { + for name, source := range sources { + _, err := T.New(name).Parse(source) + if err != nil { + log.Fatalf("ERROR: failed to parse template %s - %s", name, err) + } } - } + }) }