- while((i=read(slot->cache_fd, slot->buf, sizeof(slot->buf))) > 0)
- j = write(STDOUT_FILENO, slot->buf, i);
+ do {
+ i = j = xread(slot->cache_fd, slot->buf, sizeof(slot->buf));
+ if (i > 0)
+ j = xwrite(STDOUT_FILENO, slot->buf, i);
+ } while (i > 0 && j == i);