GNU bug report logs - #3225
session manager hang due to block on ice_fd (failure to check for EINTR in select)

Previous Next

Package: emacs;

Reported by: Karl Tomlinson <bugs+emacs <at> karlt.net>

Date: Tue, 5 May 2009 21:10:04 UTC

Severity: normal

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #14 received at 3225 <at> debbugs.gnu.org (full text, mbox):

From: "Jan D." <jan.h.d <at> swipnet.se>
To: Karl Tomlinson <karlt <at> karlt.net>
Cc: Karl Tomlinson <bugs+emacs <at> karlt.net>, Glenn Morris <rgm <at> gnu.org>,
	3225 <at> debbugs.gnu.org
Subject: Re: bug#3225: session manager hang due to block on ice_fd (failure
	to check for EINTR in select)
Date: Thu, 06 Oct 2011 08:08:27 +0200
Karl Tomlinson skrev 2011-10-06 01:54:
> 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
>

It should be.  The select call in process.c is now used and it handles 
EINTR properly.

	Jan D.






This bug report was last modified 13 years and 290 days ago.

Previous Next


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