X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=builtin-upload-archive.c;h=48ae09e9b5268ce1f11cfba433680a147ca39f7e;hb=fd2a75972e90d34bc8d4bebe1d669645557a2192;hp=115a12dc13a09e9bfd4c965ca632709e0f1cd89b;hpb=4d69065d3adad480b79831ca9f08536aaf563dba;p=git.git diff --git a/builtin-upload-archive.c b/builtin-upload-archive.c index 115a12dc1..48ae09e9b 100644 --- a/builtin-upload-archive.c +++ b/builtin-upload-archive.c @@ -1,14 +1,11 @@ /* * Copyright (c) 2006 Franck Bui-Huu */ -#include #include "cache.h" #include "builtin.h" #include "archive.h" #include "pkt-line.h" #include "sideband.h" -#include -#include static const char upload_archive_usage[] = "git-upload-archive "; @@ -94,7 +91,7 @@ static void process_input(int child_fd, int band) char buf[16384]; ssize_t sz = read(child_fd, buf, sizeof(buf)); if (sz < 0) { - if (errno != EINTR) + if (errno != EAGAIN && errno != EINTR) error_clnt("read error: %s\n", strerror(errno)); return; } @@ -160,7 +157,8 @@ int cmd_upload_archive(int argc, const char **argv, const char *prefix) if (pfd[1].revents & POLLIN) /* Status stream ready */ process_input(pfd[1].fd, 2); - if ((pfd[0].revents | pfd[1].revents) == POLLIN) + /* Always finish to read data when available */ + if ((pfd[0].revents | pfd[1].revents) & POLLIN) continue; if (waitpid(writer, &status, 0) < 0)