summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tpl/tplimpl/template_resources.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/tpl/tplimpl/template_resources.go b/tpl/tplimpl/template_resources.go
index f10aa72e3..cfec816ad 100644
--- a/tpl/tplimpl/template_resources.go
+++ b/tpl/tplimpl/template_resources.go
@@ -46,12 +46,17 @@ type remoteLock struct {
// URLLock locks an URL during download
func (l *remoteLock) URLLock(url string) {
+ var (
+ lock *sync.Mutex
+ ok bool
+ )
l.Lock()
- if _, ok := l.m[url]; !ok {
- l.m[url] = &sync.Mutex{}
+ if lock, ok = l.m[url]; !ok {
+ lock = &sync.Mutex{}
+ l.m[url] = lock
}
l.Unlock()
- l.m[url].Lock()
+ lock.Lock()
}
// URLUnlock unlocks an URL when the download has been finished. Use only in defer calls.