|
From: | Jan D. |
Subject: | 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 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 |
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.
[Prev in Thread] | Current Thread | [Next in Thread] |