summaryrefslogtreecommitdiffstats
path: root/hugolib
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-04-12 10:07:08 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-04-12 21:15:51 +0200
commit3b67759495c9268c30e6ba2d8c7e3b75d52d2960 (patch)
treef2b594fa616c7807108c660f7191d95362f17bcd /hugolib
parent5fad8a9d06319063ee05799068fd9f66e9bed268 (diff)
hugolib: Avoid processing the same notify event twice
On `macOS`, at least, we've seen multiple WRITE events for same file, and no need to do the same job twice.
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/site.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/hugolib/site.go b/hugolib/site.go
index 768fe147f..d8e40f039 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -633,8 +633,15 @@ func (s *Site) reProcess(events []fsnotify.Event) (whatChanged, error) {
shortcodesChanged := make(map[string]bool)
// prevent spamming the log on changes
logger := helpers.NewDistinctFeedbackLogger()
+ seen := make(map[fsnotify.Event]bool)
for _, ev := range events {
+ // Avoid processing the same event twice.
+ if seen[ev] {
+ continue
+ }
+ seen[ev] = true
+
if s.isContentDirEvent(ev) {
logger.Println("Source changed", ev.Name)
sourceChanged = append(sourceChanged, ev)