watch: skip setup if nothing is being watched (#1861)

This commit is contained in:
Nick Santos 2019-07-15 18:57:15 -04:00 committed by Nicolas De loof
parent 21e5d564af
commit 37647bc600
3 changed files with 20 additions and 0 deletions

View File

@ -28,6 +28,14 @@ func TestNoEvents(t *testing.T) {
f.assertEvents()
}
func TestNoWatches(t *testing.T) {
f := newNotifyFixture(t)
defer f.tearDown()
f.paths = nil
f.rebuildWatcher()
f.assertEvents()
}
func TestEventOrdering(t *testing.T) {
f := newNotifyFixture(t)
defer f.tearDown()
@ -586,6 +594,10 @@ func (f *notifyFixture) consumeEventsInBackground(ctx context.Context) chan erro
}
func (f *notifyFixture) fsync() {
if len(f.paths) == 0 {
return
}
syncPathBase := fmt.Sprintf("sync-%d.txt", time.Now().UnixNano())
syncPath := filepath.Join(f.paths[0], syncPathBase)
anySyncPath := filepath.Join(f.paths[0], "sync-")

View File

@ -89,6 +89,10 @@ func (d *darwinNotify) initAdd(name string) {
}
func (d *darwinNotify) Start() error {
if len(d.stream.Paths) == 0 {
return nil
}
numberOfWatches.Add(int64(len(d.stream.Paths)))
d.stream.Start()

View File

@ -35,6 +35,10 @@ type naiveNotify struct {
}
func (d *naiveNotify) Start() error {
if len(d.notifyList) == 0 {
return nil
}
for name := range d.notifyList {
fi, err := os.Stat(name)
if err != nil && !os.IsNotExist(err) {