From 78a6597edb3e3e2bdbc25d793dfe4109ed728d7b Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 9 Dec 2013 11:11:26 -0500 Subject: [PATCH] Update --- watch.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/watch.go b/watch.go index 2f4ae67..d7500a7 100644 --- a/watch.go +++ b/watch.go @@ -27,9 +27,10 @@ import ( ) var ( - cmd *exec.Cmd - state sync.Mutex - eventTime = make(map[string]int64) + cmd *exec.Cmd + state sync.Mutex + eventTime = make(map[string]int64) + buildPeriod time.Time ) func NewWatcher(paths []string) { @@ -53,6 +54,12 @@ func NewWatcher(paths []string) { continue } + // Prevent duplicated builds. + if buildPeriod.Add(1 * time.Second).After(time.Now()) { + continue + } + buildPeriod = time.Now() + mt := getFileModTime(e.Name) if t := eventTime[e.Name]; mt == t { ColorLog("[SKIP] # %s #\n", e.String()) @@ -69,8 +76,6 @@ func NewWatcher(paths []string) { ColorLog("[WARN] %s\n", err.Error()) // No need to exit here } } - - time.Sleep(500 * time.Millisecond) }() ColorLog("[INFO] Initializing watcher...\n")