Skip to content

Commit

Permalink
Use FSEventsWatcher as default on darwin
Browse files Browse the repository at this point in the history
* eventwatcher_darwin.go
  * NewEventWather returns fsEventWatehr

* eventwatcher_other.go
  * NewEventWather returns fsNotifyWatcher
  • Loading branch information
satotake committed Dec 31, 2022
1 parent 3f4f7c7 commit 6e723a8
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 17 deletions.
3 changes: 0 additions & 3 deletions watcher/batcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
package watcher

import (
"runtime"
"time"

"github.com/fsnotify/fsnotify"
Expand All @@ -39,8 +38,6 @@ func New(intervalBatcher, intervalPoll time.Duration, poll bool) (*Batcher, erro

if poll {
watcher = filenotify.NewPollingWatcher(intervalPoll)
} else if runtime.GOOS == "darwin" {
watcher, err = filenotify.NewFSEventsWatcher()
} else {
watcher, err = filenotify.New(intervalPoll)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -308,3 +308,8 @@ func NewFSEventsWatcher() (FileWatcher, error) {
}
return w, nil
}

// NewEventWatcher returns an FSEvents based file watcher on darwin
func NewEventWatcher() (FileWatcher, error) {
return NewFSEventsWatcher()
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package filenotify

func NewFSEventsWatcher() (FileWatcher, error) {
return NewEventWatcher()
// NewEventWatcher returns an fsnotify based file watcher
func NewEventWatcher() (FileWatcher, error) {
return NewFsNotifyWatcher()
}
9 changes: 0 additions & 9 deletions watcher/filenotify/filenotify.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,3 @@ func NewPollingWatcher(interval time.Duration) FileWatcher {
errors: make(chan error),
}
}

// NewEventWatcher returns an fs-event based file watcher
func NewEventWatcher() (FileWatcher, error) {
watcher, err := fsnotify.NewWatcher()
if err != nil {
return nil, err
}
return &fsNotifyWatcher{watcher}, nil
}
6 changes: 4 additions & 2 deletions watcher/filenotify/fsevents_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,12 @@ func TestFSEventsEvent(t *testing.T) {
c.Run(fmt.Sprintf("%s, Add should not trigger event", "fsevents"), func(c *qt.C) {
dir, w := prepareFSEventsTest(c, method)
subdir := filepath.Join(dir, subdir1)
w.Add(subdir)

// It is rare but this may catch CREATE event of prepareFSEventsTest?
// might contain CREATE event derived from preparation, try to remove.
drainEvents(c, w)
w.Add(subdir)
assertEvents(c, w)

// Create a new sub directory and add it to the watcher.
subdir = filepath.Join(dir, subdir1, subdir2)
c.Assert(os.Mkdir(subdir, 0777), qt.IsNil)
Expand Down
8 changes: 8 additions & 0 deletions watcher/filenotify/fsnotify.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,11 @@ func (w *fsNotifyWatcher) Events() <-chan fsnotify.Event {
func (w *fsNotifyWatcher) Errors() <-chan error {
return w.Watcher.Errors
}

func NewFsNotifyWatcher() (FileWatcher, error) {
watcher, err := fsnotify.NewWatcher()
if err != nil {
return nil, err
}
return &fsNotifyWatcher{watcher}, nil
}
2 changes: 1 addition & 1 deletion watcher/filenotify/poller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ func preparePollTest(c *qt.C, poll bool) (string, FileWatcher) {
w = NewPollingWatcher(watchWaitTime)
} else {
var err error
w, err = NewEventWatcher()
w, err = NewFsNotifyWatcher()
c.Assert(err, qt.IsNil)
}

Expand Down

0 comments on commit 6e723a8

Please sign in to comment.