X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=samtools.git;a=blobdiff_plain;f=knetfile.c;fp=knetfile.c;h=1e2c042701de0fec88212f563ff4862da6fcad93;hp=e1be4d669b845babe504dc1bfd2e2ccbe806f593;hb=6a0c6f060a60789b48e10a72b1381f6e54599302;hpb=e3b3a0177339fb8c099346986e965e3bd5b85999 diff --git a/knetfile.c b/knetfile.c index e1be4d6..1e2c042 100644 --- a/knetfile.c +++ b/knetfile.c @@ -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; }