aboutsummaryrefslogtreecommitdiff
path: root/lib/download.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2000-03-23 10:41:16 +0000
committerDaniel Stenberg <daniel@haxx.se>2000-03-23 10:41:16 +0000
commite541da93fee32afb38b6ac86cefc62155130861a (patch)
treee72e09a31f154c0de0fc4197b004c0f46518e5a5 /lib/download.c
parent0fac349c62d390d9ad76a4ca05fed3413d0b01e1 (diff)
in case the select() returns -1 and errno is EINTR, it should not abort
the download (MT-adjustment)
Diffstat (limited to 'lib/download.c')
-rw-r--r--lib/download.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/download.c b/lib/download.c
index 055217c01..380330b1b 100644
--- a/lib/download.c
+++ b/lib/download.c
@@ -194,7 +194,14 @@ Transfer (struct UrlData *data,
switch (select (maxfd, &readfd, &writefd, NULL, &interval)) {
case -1: /* select() error, stop reading */
- keepon = 0; /* no more read or write */
+#ifdef EINTR
+ /* The EINTR is not serious, and it seems you might get this more
+ ofen when using the lib in a multi-threaded environment! */
+ if(errno == EINTR)
+ ;
+ else
+#endif
+ keepon = 0; /* no more read or write */
continue;
case 0: /* timeout */
break;