emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 4681fba: * src/inotify.c: Add FIXME comments.


From: Paul Eggert
Subject: [Emacs-diffs] master 4681fba: * src/inotify.c: Add FIXME comments.
Date: Fri, 26 May 2017 13:53:40 -0400 (EDT)

branch: master
commit 4681fbac9061e887e355bf60f87226961db2cb89
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    * src/inotify.c: Add FIXME comments.
---
 src/inotify.c | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/src/inotify.c b/src/inotify.c
index d43b959..1165293 100644
--- a/src/inotify.c
+++ b/src/inotify.c
@@ -41,21 +41,21 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #ifndef IN_ONLYDIR
 # define IN_ONLYDIR 0
 #endif
+
+/* Events that inotify-add-watch waits for.  This list has all the
+   events that any watcher could include, because we want to support
+   multiple watches on the same file even though inotify uses the same
+   descriptor for all watches to that file.  This list omits
+   IN_ACCESS, IN_CLOSE_WRITE, IN_CLOSE_NOWRITE, and IN_OPEN because
+   they would prevent other processes from reading; see Bug#26973.
+
+   FIXME: Explain why it is OK to omit these four bits here even
+   though a inotify-add-watch call might specify them.  */
+
 #define INOTIFY_DEFAULT_MASK                                    \
-  (IN_ATTRIB |                                                  \
-   /* IN_ACCESS | */                                            \
-   /* IN_CLOSE_WRITE | */                                       \
-   /* IN_CLOSE_NOWRITE |  */                                    \
-   IN_CREATE |                                                  \
-   IN_DELETE |                                                  \
-   IN_DELETE_SELF |                                             \
-   IN_IGNORED |                                                 \
-   IN_MODIFY |                                                  \
-   IN_MOVE_SELF |                                               \
-   IN_MOVED_FROM |                                              \
-   IN_MOVED_TO |                                                \
-   /* IN_OPEN | */                                              \
-   IN_EXCL_UNLINK)
+  (IN_ATTRIB | IN_CREATE | IN_DELETE | IN_DELETE_SELF          \
+   | IN_IGNORED | IN_MODIFY | IN_MOVE_SELF | IN_MOVED_FROM     \
+   | IN_MOVED_TO | IN_EXCL_UNLINK)
 
 /* File handle for inotify.  */
 static int inotifyfd = -1;
@@ -74,6 +74,9 @@ static int inotifyfd = -1;
    IN_ONESHOT
    IN_ONLYDIR
 
+   FIXME: Explain why IN_ONLYDIR is in the list, as it seems to be
+   in the same category as IN_DONT_FOLLOW which is allowed.
+
    Each element of this list is of the form (DESCRIPTOR . WATCHES)
    where no two DESCRIPTOR values are the same.  DESCRIPTOR represents
    the inotify watch descriptor and WATCHES is a list with elements of
@@ -423,8 +426,8 @@ See inotify(7) and inotify_add_watch(2) for further 
information.  The
 inotify fd is managed internally and there is no corresponding
 inotify_init.  Use `inotify-rm-watch' to remove a watch.
 
-Also note, that the following inotify bit-masks can not be used, due
-to the fact that descriptors are shared across different callers.
+The following inotify bit-masks cannot be used because descriptors are
+shared across different callers.
 
 IN_EXCL_UNLINK
 IN_MASK_ADD



reply via email to

[Prev in Thread] Current Thread [Next in Thread]