fix watch race

This commit is contained in:
Alexander Wang 2023-12-08 10:59:05 -08:00
parent 7a85946905
commit 26bd535dde
No known key found for this signature in database
GPG key ID: D89FA31966BDBECE

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")