GNU bug report logs -
#35418
[PATCH] Don't poll auto-revert files that use notification
Previous Next
Reported by: Mattias Engdegård <mattiase <at> acm.org>
Date: Wed, 24 Apr 2019 18:16:02 UTC
Severity: normal
Tags: patch
Done: Mattias Engdegård <mattiase <at> acm.org>
Bug is archived. No further changes may be made.
Full log
Message #104 received at 35418 <at> debbugs.gnu.org (full text, mbox):
> It was a design decision, that filenotify.el implements directory watching. Since kqueue does not support this, it must be emulated, somehow.
>
It seems that it is not true for kqueue on macOS 10.13.6.
Several weeks ago, I met a problem with emacs auto-revert. Some files in a directory can’t be auto reverted. This directory was a soft link to another directory. I did some debug and found that no event would be received if you use file watching for the files in a soft link directory. And use directory watching for these files worked well. So I modified filenotify.el like this:
diff --git a/lisp/filenotify.el b/lisp/filenotify.el
index 101ddb6be0..a4a0359328 100644
--- a/lisp/filenotify.el
+++ b/lisp/filenotify.el
@@ -363,7 +363,7 @@ file-notify-add-watch
(setq desc (funcall
;; kqueue does not report file changes in directory
;; monitor. So we must watch the file itself.
- func (if (eq file-notify--library 'kqueue) file dir)
+ func (if (eq file-notify--library 'kqueue11) file dir)
l-flags 'file-notify-callback)))
;; Modify `file-notify-descriptors’.
It works well since then.
I don’t known from when the behavior of kqueue changed. There maybe need a user option to control whether to use file watching or directory watching for kqueue.
This bug report was last modified 6 years and 4 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.