fork of https://github.com/sourcegraph/zoekt
0

Configure Feed

Select the types of activity you want to include in your feed.

Merge remote-tracking branch 'gerrit/master'

Change-Id: I2a4c92c9175cf1c1347f2faf8cfba1c998d8baac

+19 -2
+19 -2
shards/watcher.go
··· 174 174 return err 175 175 } 176 176 177 + // intermediate signal channel so if there are multiple watcher.Events we 178 + // only call scan once. 179 + signal := make(chan struct{}, 1) 180 + 177 181 go func() { 178 182 for { 179 183 select { 180 184 case <-watcher.Events: 181 - s.scan() 185 + select { 186 + case signal <- struct{}{}: 187 + default: 188 + } 182 189 case err := <-watcher.Errors: 183 - if err != nil { 190 + // Ignore ErrEventOverflow since we rely on the presence of events so 191 + // safe to ignore. 192 + if err != nil && err != fsnotify.ErrEventOverflow { 184 193 log.Println("watcher error:", err) 185 194 } 186 195 case <-quitter: 187 196 watcher.Close() 197 + close(signal) 188 198 return 189 199 } 190 200 } 191 201 }() 202 + 203 + go func() { 204 + for range signal { 205 + s.scan() 206 + } 207 + }() 208 + 192 209 return nil 193 210 }