Subject: bug#15801: 24.3.50; bar scrolling freezes gtk emacs

From: Jarek Czekalski <[email-masked]>
Date: Tue, 03 Dec 2013 23:27:45 +0100

It's not about sigio. Inside xg_select, which is called with high 
frequency inside the freeze, the sigmask has not sigio set. Even if I 
try to force the freeze calling unrequest_sigio (and sigmask indeed 
changes), still the behaviour does not differ. Emacs is responsive until 
I want to play scrolling bars with it.

What I discovered so far:

1. Inside the freeze xg_select always returns 1, due to active 
descriptor 7 (in my case it's number 7). This is the descriptor received 
from ConnectionNumber (x11) and inserted into input_wait_mask through 
add_keyboard_wait_descriptor
2. gtk detects no events pending during the freeze
3. gdk event filter is not called

This contradiction (input from x11, but no gtk events) suggests to me 
that something's wrong between gtk and x, in gdk x11 module. So gtk 
version may be important. It is included in the initial report, 3.8.4. 
No change in 3.8.6-1. When I compiled 3.11.2 (the hottest gtk tag), 
emacs does not freeze, but displays white screen instead of the text 
area, only momentarily showing traces of the true content.

I'll report again when I know something for sure. I'm not giving up yet :)

By the way: g_main_context_query call in xg_select is theoretically 
illegal, because it should be wrapped inside g_main_context_acquire. 
Also g_main_context_prepare is suggested before "query". Anyway adding 
both these calls does not help the freeze.

Jarek