Properly handle inotify's IN_Q_OVERFLOW event (#149)

* Properly handle inotify's IN_Q_OVERFLOW event

Upon receiving an event with IN_Q_OVERFLOW set in the mask, generate an
error on the Errors chan, so that the application can take appropriate
action.

* Use a well-defined error (ErrEventOverflow) for inotify overflow

* Add a test for inotify queue overflow
3 files changed
tree: ae34945d5f4a0900366d0f1404197871149a4b2a
  1. .github/
  2. .editorconfig
  3. .gitignore
  4. .travis.yml
  5. AUTHORS
  6. CHANGELOG.md
  7. CONTRIBUTING.md
  8. example_test.go
  9. fen.go
  10. fsnotify.go
  11. fsnotify_test.go
  12. inotify.go
  13. inotify_poller.go
  14. inotify_poller_test.go
  15. inotify_test.go
  16. integration_darwin_test.go
  17. integration_test.go
  18. kqueue.go
  19. LICENSE
  20. open_mode_bsd.go
  21. open_mode_darwin.go
  22. README.md
  23. windows.go
README.md

File system notifications for Go

GoDoc Go Report Card

fsnotify utilizes golang.org/x/sys rather than syscall from the standard library. Ensure you have the latest version installed by running:

go get -u golang.org/x/sys/...

Cross platform: Windows, Linux, BSD and macOS.

AdapterOSStatus
inotifyLinux 2.6.27 or later, Android*Supported Build Status
kqueueBSD, macOS, iOS*Supported Build Status
ReadDirectoryChangesWWindowsSupported Build status
FSEventsmacOSPlanned
FENSolaris 11In Progress
fanotifyLinux 2.6.37+
USN JournalsWindowsMaybe
PollingAllMaybe

* Android and iOS are untested.

Please see the documentation for usage. Consult the Wiki for the FAQ and further information.

API stability

fsnotify is a fork of howeyc/fsnotify with a new API as of v1.0. The API is based on this design document.

All releases are tagged based on Semantic Versioning. Further API changes are planned, and will be tagged with a new major revision number.

Go 1.6 supports dependencies located in the vendor/ folder. Unless you are creating a library, it is recommended that you copy fsnotify into vendor/github.com/fsnotify/fsnotify within your project, and likewise for golang.org/x/sys.

Contributing

Please refer to CONTRIBUTING before opening an issue or pull request.

Example

See example_test.go.

Related Projects