From: Michael Albinus <michael.albinus@gmx.de>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: "Rüdiger Sonderfeld" <ruediger@c-plusplus.de>, emacs-devel@gnu.org
Subject: Re: filenotify.el
Date: Wed, 26 Jun 2013 16:15:17 +0200 [thread overview]
Message-ID: <87d2r9vtze.fsf@gmx.de> (raw)
In-Reply-To: <jwvmwqd81yn.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Wed, 26 Jun 2013 09:04:41 -0400")
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> In this case, we must ensure that the incoming file-notify events can
>> be distinguished.
>
> Where? In the C code or in filenotify.el? AFAICT, at the Elisp level,
> a callback is only called for a given "watcher" (which is even more
> specific than a "notification library"), so I see no reason why
> a callback setup with inotify-add-watch should be called by gfilenotify,
> for example.
Imagine there are two registered watchers:
(gfile-add-watch "/tmp" flags1 'callback1)
(inotify-add-watch "/tmp" flags2 'callback2)
Both return the same descriptor, let's say 1. What would you call, when
there is an incoming event (1 flag "123") for the file "/tmp/123"? Would
you apply callback1 or callback2? You don't know whether the event comes
from gfilenotify or inotify. Maybe one could distinguish wrt the
returned flag, but I wouldn't bet that's always unique.
>> Such an event looks like (DESCRIPTOR ACTION FILE). Different low-level
>> packages must use unique DESCRIPTORs then.
>
> Just use (inotify DESCRIPTOR ACTION FILE) instead, if that's really needed.
I would make the descriptor a cons cell '(inotify . number), but it is
the same idea. Again, for Tramp I use already a vector as descriptor.
The only promise we have given is, that descriptors returned by
*-add-watch functions can be distinguished via `equal'.
No need to change it today, because there are no two packages linked in
parallel yet. But this might be needed in the future.
> Stefan
Best regards, Michael.
next prev parent reply other threads:[~2013-06-26 14:15 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-25 12:02 filenotify.el Michael Albinus
2013-06-25 16:25 ` filenotify.el Rüdiger Sonderfeld
2013-06-25 19:00 ` filenotify.el Michael Albinus
2013-06-25 19:20 ` filenotify.el Eli Zaretskii
2013-06-25 19:27 ` filenotify.el Michael Albinus
2013-06-25 20:14 ` filenotify.el Eli Zaretskii
2013-06-26 6:06 ` filenotify.el Michael Albinus
2013-06-26 0:11 ` filenotify.el Stefan Monnier
2013-06-26 6:21 ` filenotify.el Michael Albinus
2013-06-26 13:04 ` filenotify.el Stefan Monnier
2013-06-26 14:15 ` Michael Albinus [this message]
2013-06-26 14:28 ` filenotify.el Stefan Monnier
2013-06-26 14:37 ` filenotify.el Michael Albinus
2013-06-26 15:57 ` filenotify.el Eli Zaretskii
2013-06-26 19:59 ` filenotify.el Stefan Monnier
2013-06-26 20:28 ` filenotify.el Michael Albinus
2013-06-26 0:45 ` filenotify.el Rüdiger Sonderfeld
2013-06-26 6:40 ` filenotify.el Michael Albinus
2013-06-26 7:50 ` About `<prefix>--' (was Re: filenotify.el) Stephen Berman
2013-06-26 13:06 ` Stefan Monnier
2013-06-26 22:36 ` Stephen Berman
2013-06-27 1:39 ` Stefan Monnier
2013-06-27 23:19 ` Josh
2013-06-28 3:00 ` Xue Fuqiao
2013-06-28 22:54 ` Stefan Monnier
2013-06-28 23:50 ` Xue Fuqiao
2013-06-29 2:06 ` Stefan Monnier
2013-06-28 21:59 ` Richard Stallman
2013-06-30 18:50 ` Josh
2013-06-27 12:18 ` filenotify.el (2) Michael Albinus
2013-07-04 9:54 ` Michael Albinus
2013-07-17 13:52 ` filenotify.el Rüdiger Sonderfeld
2013-07-17 14:54 ` filenotify.el Michael Albinus
2013-07-17 16:21 ` filenotify.el Rüdiger Sonderfeld
2013-07-18 10:10 ` filenotify.el Michael Albinus
2013-07-22 18:17 ` filenotify.el Davis Herring
2013-07-22 18:28 ` filenotify.el Michael Albinus
2013-07-22 19:00 ` filenotify.el Stefan Monnier
2013-07-23 6:57 ` filenotify.el Michael Albinus
2013-07-23 13:08 ` filenotify.el Stefan Monnier
2013-07-23 13:34 ` filenotify.el Michael Albinus
2013-07-23 13:57 ` filenotify.el Stefan Monnier
2013-07-23 14:13 ` filenotify.el Michael Albinus
2013-07-23 14:23 ` filenotify.el Stefan Monnier
2013-07-23 15:31 ` filenotify.el Davis Herring
2013-07-24 9:14 ` filenotify.el Michael Albinus
2013-08-02 7:10 ` filenotify.el Michael Albinus
2013-07-24 14:01 ` filenotify.el Michael Albinus
2013-07-23 16:10 ` filenotify.el Glenn Morris
2013-07-23 16:58 ` filenotify.el Michael Albinus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d2r9vtze.fsf@gmx.de \
--to=michael.albinus@gmx.de \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
--cc=ruediger@c-plusplus.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).