shithub: hugo

Download patch

ref: 42a4f6f9cbefb56698b9a4274473020188031754
parent: 79b34c2f1e0ba91ff5f4f879dc42eddfd82cc563
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Fri Mar 31 06:40:33 EDT 2017

tplimpl: Fix map data race in URLLock

--- a/tpl/tplimpl/template_resources.go
+++ b/tpl/tplimpl/template_resources.go
@@ -46,12 +46,17 @@
 
 // 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.
--