bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#21804: 25.0.50; file-notify-tests failure on Cygwin


From: Ken Brown
Subject: bug#21804: 25.0.50; file-notify-tests failure on Cygwin
Date: Fri, 30 Dec 2016 18:15:57 -0500
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0

Hi Michael,

On 12/30/2016 2:16 PM, Michael Albinus wrote:
Ken Brown <kbrown@cornell.edu> writes:
Actually it turns out to be GFamFileMonitor on my system, presumably
because I have the gamin package installed.

It turns out that this isn't special to my system. The emacs package on Cygwin requires libglib2.0_0, which requires gamin. So the monitor on Cygwin will always be of type GFamFileMonitor.

Next time I have access to a cygwin machine I'll check. However, I
wonder whether we need to respect the polling period then. According to
<http://oss.sgi.com/projects/fam/faq.html#what_is_fam>, FAM does not poll.

It says on that page, "If FAM is running on a system that doesn't have a supported kernel monitor, it polls." And I've checked the gamin sources (since Cygwin uses gamin for its implementation of libfam), and the same seems to be true there.

On the other hand, the default polling interval seems to be 1 second, so I'm not sure why the tests need such a big timeout. One factor might be the following in gio/glocalfilemonitor.c:

  #define VIRTUAL_CHANGES_DONE_DELAY  2 * G_TIME_SPAN_SECOND

If I understand the code correctly, this causes a 2-second delay before a CHANGES_DONE_HINT event is sent after a CHANGED event.

As a quick check, however, I applied the following patch...

--- a/test/lisp/filenotify-tests.el
+++ b/test/lisp/filenotify-tests.el
@@ -73,7 +73,8 @@ file-notify--test-read-event
     ;; gio/gpollfilemonitor.c declares POLL_TIME_SECS 5. So we must
     ;; wait at least this time.
     ((and (string-equal (file-notify--test-library) "gfilenotify")
-         (string-equal (file-notify--test-monitor) "GPollFileMonitor"))
+          (or (string-equal (file-notify--test-monitor) "GPollFileMonitor")
+              (string-equal (file-notify--test-monitor) "GFamFileMonitor")))
      7)
     ((file-remote-p temporary-file-directory) 0.1)
     (t 0.01))))

...and all the inexpensive tests passed.  I'll keep playing with this.

It's OK for me if you commit this patch. You know cygwin behaviour much
better then I do.

Let me play with this a little more first.

Best regards,

Ken






reply via email to

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