Fixes #227 by properly scoping the variables within the go routine.
authorspf13 <steve.francia@gmail.com>
Thu, 13 Mar 2014 19:34:47 +0000 (20:34 +0100)
committerspf13 <steve.francia@gmail.com>
Thu, 13 Mar 2014 19:34:47 +0000 (20:34 +0100)
hugolib/site.go

index 64a827d495f551b243261783bc6f6f54db928451..f53d055592fc8e014b86b73bd71b3051fb158ae6 100644 (file)
@@ -411,15 +411,14 @@ func (s *Site) RenderPages() (err error) {
 
 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 @@ func (s *Site) RenderIndexes() (err error) {
                                        }
                                }
                                return
-                       }(key, oo)
+                       }(key, oo, sing, pl)
                }
        }
        wg.Wait()