shithub: hugo

Download patch

ref: 6205a16b6e4e0e7924aed291c1adab1d775c1cfe
parent: 85c04ca2f3bf1aac9941953918ab1f1b69f1a29f
author: spf13 <[email protected]>
date: Thu Mar 13 16:34:47 EDT 2014

Fixes #227 by properly scoping the variables within the go routine.

--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -411,15 +411,14 @@
 
 func (s *Site) RenderIndexes() (err error) {
 	var wg sync.WaitGroup
-	for singular, plural := range s.Config.Indexes {
-		for key, oo := range s.Indexes[plural] {
+	for sing, pl := range s.Config.Indexes {
+		for key, oo := range s.Indexes[pl] {
 			wg.Add(1)
-
-			go func(k string, o WeightedPages) (err error) {
+			go func(k string, o WeightedPages, singular string, plural string) (err error) {
 				defer wg.Done()
+				base := plural + "/" + k
 				n := s.NewNode()
 				n.Title = strings.Title(k)
-				base := plural + "/" + k
 				s.setUrls(n, base)
 				n.Date = o[0].Page.Date
 				n.Data[singular] = o
@@ -439,7 +438,7 @@
 					}
 				}
 				return
-			}(key, oo)
+			}(key, oo, sing, pl)
 		}
 	}
 	wg.Wait()