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

This commit is contained in:
Nick Santos
2023-02-02 14:59:30 +01:00
committed by Nicolas De loof
parent 21e5d564af
commit 37647bc600
3 changed files with 20 additions and 0 deletions
+12
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-")
+4
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()
+4
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) {