summaryrefslogtreecommitdiff
path: root/src/process.c
diff options
context:
space:
mode:
authorKim F. Storm <storm@cua.dk>2004-11-09 09:40:37 +0000
committerKim F. Storm <storm@cua.dk>2004-11-09 09:40:37 +0000
commit4e9dd03b8c61ea20314b74691d5a2f74302e6953 (patch)
treedaa7587cae88af4c3b55c89945b0275bd1f22a5f /src/process.c
parentcdb805a93521d865839ed31a30d3752b2dc3e9e4 (diff)
downloademacs-4e9dd03b8c61ea20314b74691d5a2f74302e6953.tar.gz
(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.
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/src/process.c b/src/process.c
index bebcd577e9e..00bac03dc2b 100644
--- a/src/process.c
+++ b/src/process.c
@@ -3023,6 +3023,8 @@ usage: (make-network-process &rest ARGS) */)
{
int optn, optbits;
+ retry_connect:
+
s = socket (lres->ai_family, lres->ai_socktype, lres->ai_protocol);
if (s < 0)
{
@@ -3101,8 +3103,6 @@ usage: (make-network-process &rest ARGS) */)
break;
}
- retry_connect:
-
immediate_quit = 1;
QUIT;
@@ -3144,22 +3144,13 @@ usage: (make-network-process &rest ARGS) */)
immediate_quit = 0;
- if (xerrno == EINTR)
- goto retry_connect;
- if (xerrno == EADDRINUSE && retry < 20)
- {
- /* A delay here is needed on some FreeBSD systems,
- and it is harmless, since this retrying takes time anyway
- and should be infrequent. */
- Fsleep_for (make_number (1), Qnil);
- retry++;
- goto retry_connect;
- }
-
/* Discard the unwind protect closing S. */
specpdl_ptr = specpdl + count1;
emacs_close (s);
s = -1;
+
+ if (xerrno == EINTR)
+ goto retry_connect;
}
if (s >= 0)