diff options
author | Daniel Stenberg <daniel@haxx.se> | 2000-03-23 10:41:16 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2000-03-23 10:41:16 +0000 |
commit | e541da93fee32afb38b6ac86cefc62155130861a (patch) | |
tree | e72e09a31f154c0de0fc4197b004c0f46518e5a5 | |
parent | 0fac349c62d390d9ad76a4ca05fed3413d0b01e1 (diff) |
in case the select() returns -1 and errno is EINTR, it should not abort
the download (MT-adjustment)
-rw-r--r-- | lib/download.c | 9 |
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; |