port upstream - [x] https://github.com/fsnotify/fsnotify/pull/260 - [x] https://github.com/fsnotify/fsnotify/pull/470 - [x] https://github.com/fsnotify/fsnotify/pull/460 - [x] https://github.com/fsnotify/fsnotify/pull/434 - [x] https://github.com/fsnotify/fsnotify/pull/480 - [x] https://github.com/fsnotify/fsnotify/pull/475 - [ ] https://github.com/fsnotify/fsnotify/pull/479 - [ ] https://github.com/fsnotify/fsnotify/pull/370 - [x] https://github.com/fsnotify/fsnotify/pull/485 - [ ] https://github.com/fsnotify/fsnotify/pull/288 - [ ] https://github.com/fsnotify/fsnotify/pull/471 - [x] https://github.com/fsnotify/fsnotify/pull/465 - [ ] https://github.com/fsnotify/fsnotify/pull/233 - [ ] https://github.com/fsnotify/fsnotify/pull/371 - [ ] https://github.com/fsnotify/fsnotify/pull/550 - [ ] https://github.com/fsnotify/fsnotify/pull/572 - [ ] https://github.com/fsnotify/fsnotify/pull/521 - [ ] https://github.com/fsnotify/fsnotify/pull/521 - [ ] https://github.com/fsnotify/fsnotify/pull/518 - [ ] https://github.com/fsnotify/fsnotify/pull/520 - [ ] https://github.com/fsnotify/fsnotify/pull/525 - [ ] https://github.com/fsnotify/fsnotify/pull/526 - [ ] https://github.com/fsnotify/fsnotify/pull/524 - [ ] https://github.com/fsnotify/fsnotify/pull/516 - [ ] https://github.com/fsnotify/fsnotify/pull/528
port upstream
Do not suppress Chmod on non-existent file fsnotify/fsnotify#260
inotify: don't ignore events for files that don't exist fsnotify/fsnotify#470
Use common error when removing an unwatched file fsnotify/fsnotify#460
Replace Use of Kthread-blocking Epoll with Poller Read, Remove Per-Event LStats on Linux #433 fsnotify/fsnotify#434
kqueue: remove timeout from unix.Kevent() fsnotify/fsnotify#480
macos: retry if open() returns EINTR fsnotify/fsnotify#475
kqueue: don't set up watchers on unreadable files fsnotify/fsnotify#479
Fix: Update watch paths when renaming directories with sub-watches on Windows fsnotify/fsnotify#370
windows: increase buffer size from 4K to 64K fsnotify/fsnotify#485
[bugfix] close handle when remWatch open in getIno fsnotify/fsnotify#288
kqueue: better error if watching a file fails fsnotify/fsnotify#471
inotify: fix race in Close() fsnotify/fsnotify#465
kqueue: Make watcher.Close() O(n) instead of O(n^2) fsnotify/fsnotify#233
Add Solaris FEN using EventPorts from x/sys/unix fsnotify/fsnotify#371
Optional Buffered Events channel. fsnotify/fsnotify#550
Add NewBufferedWatcher() fsnotify/fsnotify#572
Add AddWith() to pass options, allow controlling Windows buffer size fsnotify/fsnotify#521
Add AddWith() to pass options, allow controlling Windows buffer size fsnotify/fsnotify#521
inotify: remove watch when renaming a watched path fsnotify/fsnotify#518
windows: ignore file attributes fsnotify/fsnotify#520
windows: use ErrEventOverflow instead of "short read in readEvents()" fsnotify/fsnotify#525
kqueue: don't immediately remove watches for all files in a directory on Delete event fsnotify/fsnotify#526
Fix symlink behaviour on kqueue fsnotify/fsnotify#524
Return ErrClosed on Add() when the watcher is closed fsnotify/fsnotify#516
Add CI for linux/arm64, darwin/arm64 fsnotify/fsnotify#528