Subject: bug#3225: session manager hang due to block on ice_fd (failure to check for EINTR in select)

From: Karl Tomlinson <[email-masked]>
Date: Thu, 06 Oct 2011 12:54:53 +1300

Glenn Morris writes:

> Karl Tomlinson wrote:
>
>> x_session_check_input in xmsfns.c has this code:
>>
>>   if (select (ice_fd+1, &read_fds,
>>               (SELECT_TYPE *)0, (SELECT_TYPE *)0, &tmout) < 0)
>>     {
>>       ice_fd = -1;
>>       return 0;
>>     }
>>
>> So ice_fd is set to -1 when select returns due to a signal
>> (with errno == EINTR).  This leaves the fd open but prevents
>> further processing.
>
> Sorry for the delay. Is this still an issue? The current code does not
> look like that.

I haven't tested, but it looks like this should be fixed by
http://bzr.savannah.gnu.org/lh/emacs/trunk/revision/103065