[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

From: Helmut Eller
Subject: bug#5723: 23.1.94; make-network-process and emacs hangs
Date: Fri, 19 Mar 2010 07:41:54 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)

* YAMAMOTO Mitsuharu [2010-03-19 02:47+0100] writes:

>>>>>> On Thu, 18 Mar 2010 18:06:20 +0900, YAMAMOTO Mitsuharu <address@hidden> 
>>>>>> said:
>>>> If your case blocks at `connect', then it can't be quit with C-g
>>>> regardless of SYNC_INPUT on those ports/systems, because atimer is
>>>> turned off during the `connect' call.
>>> Why is the timer turned off around connect?  Handling SIGALARM
>>> during connect doesn't seem much different from handling SIGIO.
>> I think your argument makes sense.
> The current code closes the socket and call `connect' again if
> (blocking) `connect' is interrupted by a signal.
> 2004-11-09  Kim F. Storm  <address@hidden>
>       * 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).
> Also, POSIX says:
>   If connect() is interrupted by a signal that is caught while blocked
>   waiting to establish a connection, connect() shall fail and set
>   errno to [EINTR], but the connection request shall not be aborted,
>   and the connection shall be established asynchronously.
>   ...
>   When the connection has been established asynchronously, select()
>   and poll() shall indicate that the file descriptor for the socket is
>   ready for writing.
> (http://www.opengroup.org/onlinepubs/000095399/functions/connect.html)
> Perhaps we should try this, not just removing `turn_on_atimers' calls.

I had reported that already in 
but was silently ignored.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]