in case the select() returns -1 and errno is EINTR, it should not abort
authorDaniel Stenberg <daniel@haxx.se>
Thu, 23 Mar 2000 10:41:16 +0000 (10:41 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 23 Mar 2000 10:41:16 +0000 (10:41 +0000)
the download (MT-adjustment)

lib/download.c

index 055217c..380330b 100644 (file)
@@ -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;