Remove fsnotify library dependency, using kqueue (macOS only)#6
Open
Remove fsnotify library dependency, using kqueue (macOS only)#6
Conversation
vegarsti
commented
Feb 7, 2026
main.go
Outdated
Comment on lines
+57
to
+66
| // Check if path is a directory | ||
| info, err := os.Stat(path) | ||
| if err != nil { | ||
| return err | ||
| } | ||
|
|
||
| var fd int | ||
| var fflags uint32 | ||
|
|
||
| if info.IsDir() { |
Owner
Author
There was a problem hiding this comment.
This seems a bit cumbersome
- Remove dependency on github.com/fsnotify/fsnotify - Implement kqueueWatcher using golang.org/x/sys/unix - Use O_EVTONLY for files (better handling of atomic saves) - Use NOTE_WRITE for directories (detect file creation/deletion) - Set FD_CLOEXEC on all file descriptors to prevent inheritance by child processes - Watch both files and directories depending on context
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See kqueue man pages: https://man.freebsd.org/cgi/man.cgi?kqueue
O_EVTONLYfor files (better handling of atomic saves)NOTE_WRITEfor directories (detect file creation/deletion)FD_CLOEXECon all file descriptors to prevent inheritance by child processes