Subject: bug#8869: Unjustified selection time-out

From: Jan Djärv <[email-masked]>
Date: Mon, 20 Jun 2011 17:24:33 +0200

Chong Yidong skrev 2011-06-20 16.57:
> Jan Djärv<[email-masked]>  writes:
>
>> The problem is not calling select with a ong timeout, the problem is
>> not checking if there is queued events and handling them before
>> entering select.
>>
>> Checking Emacs as I run it, select is usually enetered with a timeout
>> betweeen 10 and 15 seconds, so the potential for this happening is
>> great.
>
> But the selection request from the other X client can arrive at any
> time,

No, it can't.  It must arrive after SAVE_TARGET and it is not read unless any 
X code (XNextEvent or gtk_events_pending()) is executed.

> not necessarily before we enter the select.

> If the front part of
> wait_reading_process_output executes very quickly, we'll enter the
> select before a response is ready, in which case Emacs will wait the
> entire 20 seconds if no other input is available.

No, in that case the X request has not been read and it still in the socket.
Select will then detect that and return.  It is not before XTread_socket is 
called the event is actually read.

	Jan D.