xread/xwrite: do not worry about EINTR at calling sites.

We had errno==EINTR check after read(2)/write(2) sprinkled all
over the places, always doing continue.  Consolidate them into
xread()/xwrite() wrapper routines.

Credits for suggestion goes to HPA -- bugs are mine.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano
2005-12-19 16:18:28 -08:00
parent 1fdfd05db2
commit 1c15afb934
9 changed files with 46 additions and 63 deletions

View File

@ -55,10 +55,8 @@ int main(int argc, char **argv)
die("git-cat-file %s: bad file", argv[2]);
while (size > 0) {
long ret = write(1, buf, size);
long ret = xwrite(1, buf, size);
if (ret < 0) {
if (errno == EAGAIN)
continue;
/* Ignore epipe */
if (errno == EPIPE)
break;