]> git.donarmstrong.com Git - samtools.git/commitdiff
Apply a patch by Rob Davis, which improves fault detection.
authorHeng Li <lh3@live.co.uk>
Thu, 18 Nov 2010 16:26:09 +0000 (16:26 +0000)
committerHeng Li <lh3@live.co.uk>
Thu, 18 Nov 2010 16:26:09 +0000 (16:26 +0000)
knetfile.c

index e1be4d669b845babe504dc1bfd2e2ccbe806f593..1e2c042701de0fec88212f563ff4862da6fcad93 100644 (file)
@@ -517,7 +517,10 @@ off_t knet_read(knetFile *fp, void *buf, off_t len)
        if (fp->type == KNF_TYPE_LOCAL) { // on Windows, the following block is necessary; not on UNIX
                off_t rest = len, curr;
                while (rest) {
-                       curr = read(fp->fd, buf + l, rest);
+                       do {
+                               curr = read(fp->fd, buf + l, rest);
+                       } while (curr < 0 && EINTR == errno);
+                       if (curr < 0) return -1;
                        if (curr == 0) break;
                        l += curr; rest -= curr;
                }