GNU bug report logs - #15801
24.3.50; bar scrolling freezes gtk emacs

Previous Next

Package: emacs;

Reported by: Jarek Czekalski <jarekczek <at> poczta.onet.pl>

Date: Mon, 4 Nov 2013 18:42:02 UTC

Severity: important

Found in version 24.3.50

Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Jan Djärv <jan.h.d <at> swipnet.se>
To: Jarek Czekalski <jarekczek <at> poczta.onet.pl>
Cc: 15801 <at> debbugs.gnu.org
Subject: bug#15801: it's a different revision, 112892
Date: Thu, 21 Nov 2013 07:00:49 +0100
Hello.

6 nov 2013 kl. 20:48 skrev Jarek Czekalski <jarekczek <at> poczta.onet.pl>:

> 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.

It seems like Emacs stops receiving SIGIO.  If it is blocked or if Gtk+ stole the signal handler I don't know yet.

	Jan D.

> 
> ------------------------------------------------------------
> revno: 112892
> committer: Jan D. <jan.h.d <at> swipnet.se>
> 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
> 
> 





This bug report was last modified 11 years and 37 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.