Merge pull request #1768 from alixander/fix-watch-race

fix watch race
This commit is contained in:
Alexander Wang 2023-12-08 11:05:37 -08:00 committed by GitHub
commit 957879d2e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -292,15 +292,15 @@ func (w *watcher) watchLoop(ctx context.Context) error {
var changedList []string var changedList []string
for k := range changed { for k := range changed {
changedList = append(changedList, k) changedList = append(changedList, k)
delete(changed, k)
} }
sort.Strings(changedList) sort.Strings(changedList)
changedStr := w.ms.HumanPath(changedList[0]) changedStr := w.ms.HumanPath(changedList[0])
for i := 1; i < len(changed); i++ { for i := 1; i < len(changedList); i++ {
changedStr += fmt.Sprintf(", %s", w.ms.HumanPath(changedList[i])) changedStr += fmt.Sprintf(", %s", w.ms.HumanPath(changedList[i]))
} }
w.ms.Log.Info.Printf("detected change in %s: recompiling...", changedStr) w.ms.Log.Info.Printf("detected change in %s: recompiling...", changedStr)
w.requestCompile() w.requestCompile()
changed = make(map[string]struct{})
case err, ok := <-w.fw.Errors: case err, ok := <-w.fw.Errors:
if !ok { if !ok {
return errors.New("fsnotify watcher closed") return errors.New("fsnotify watcher closed")