Subject: bug#15801: it's a different revision, 112892

From: Jarek Czekalski <[email-masked]>
Date: Wed, 06 Nov 2013 20:48:29 +0100

First of all I apologize for giving the wrong revision number in my 
previous report.

When I tried to isolate the piece of code that introduces problems, I 
finally gave up. This all revision may be applied and all works. So I 
did more binary search and finally I'm sure the one below is the right 
revision.

------------------------------------------------------------
revno: 112892
committer: Jan D. <[email-masked]>
branch nick: trunk
timestamp: Sat 2013-06-08 10:48:52 +0200
message:
   * xgselect.c (xg_select): Remove call to window_system_available
   and g_main_context_pending at the top, so Gdk events (i.e. file
   notify) are processed when Emacs is started with -nw.

It's quite short:

=== modified file 'src/xgselect.c'
@@ -44,9 +44,13 @@

-  if (! (window_system_available (NULL)
-     && g_main_context_pending (context = g_main_context_default ())))
-    return pselect (fds_lim, rfds, wfds, efds, timeout, sigmask);
+  /* Do not try to optimize with an initial check with 
g_main_context_pending
+     and a call to pselect if it returns false.  If Gdk has a timeout 
for 0.01
+     second, and Emacs has a timeout for 1 second, 
g_main_context_pending will
+     return false, but the timeout will be 1 second, thus missing the gdk
+     timeout with a lot.  */
+
+  context = g_main_context_default ();

When I apply the code removed in this revision to the current trunk, I 
have a relief. No more freezing, as well as with my first fix that also 
works.

Jarek