Subject: Re: bug#5723: 23.1.94; make-network-process and emacs hangs

From: YAMAMOTO Mitsuharu <[email-masked]>
Date: Fri, 19 Mar 2010 19:21:43 +0900

>>>>> On Fri, 19 Mar 2010 07:41:54 +0100, Helmut Eller <[email-masked]> said:

>> The current code closes the socket and call `connect' again if
>> (blocking) `connect' is interrupted by a signal.
>> 
>> 2004-11-09  Kim F. Storm  <[email-masked]>
>> 
>> * process.c (Fmake_network_process): Remove kludge for interrupted
>> connects on BSD.  If connect is interrupted, just close socket and
>> start over rather than sleeping and retry with same socket.
>> 
>> (http://cvs.savannah.gnu.org/viewvc/emacs/src/process.c?root=emacs&r1=1.443&r2=1.444)
>> 
>> UNIX Network Programming (Richard Stevens et al.) says "What we must
>> do in this scenario is call /select/" (Section 16,5, Volume 1 third
>> edition).
(snip)
>> Perhaps we should try this, not just removing `turn_on_atimers' calls.

> I had reported that already in 
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5173
> but was silently ignored.

Oh, I didn't notice that.

I think the essential part of the suggested code, as well as the
removal of turn_on_atimers calls, should go to the trunk for further
testing on various platforms.  Maintainers, what do you think?

				     YAMAMOTO Mitsuharu
				[email-masked]