diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-11-17 22:03:20 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-11-17 22:03:20 -0800 |
commit | e36e6c00cd60130f8792319a5aa0f56d2da68e14 (patch) | |
tree | b78eb47745f965c463898141e4dfff0156cdd9d1 | |
parent | aa17bacc14362dbe076c5ea20531a21dea8677a7 (diff) | |
parent | 6b59f51b312f06d9420d34c09fa408c658aac6d2 (diff) | |
download | git-e36e6c00cd60130f8792319a5aa0f56d2da68e14.tar.gz git-e36e6c00cd60130f8792319a5aa0f56d2da68e14.tar.xz |
Merge branch 'np/maint-sideband-favor-status'
* np/maint-sideband-favor-status:
give priority to progress messages
-rw-r--r-- | builtin-upload-archive.c | 14 | ||||
-rw-r--r-- | upload-pack.c | 32 |
2 files changed, 23 insertions, 23 deletions
diff --git a/builtin-upload-archive.c b/builtin-upload-archive.c index c4cd1e132..29446e84c 100644 --- a/builtin-upload-archive.c +++ b/builtin-upload-archive.c @@ -132,7 +132,6 @@ int cmd_upload_archive(int argc, const char **argv, const char *prefix) while (1) { struct pollfd pfd[2]; - ssize_t processed[2] = { 0, 0 }; int status; pfd[0].fd = fd1[0]; @@ -147,15 +146,14 @@ int cmd_upload_archive(int argc, const char **argv, const char *prefix) } continue; } - if (pfd[0].revents & POLLIN) - /* Data stream ready */ - processed[0] = process_input(pfd[0].fd, 1); if (pfd[1].revents & POLLIN) /* Status stream ready */ - processed[1] = process_input(pfd[1].fd, 2); - /* Always finish to read data when available */ - if (processed[0] || processed[1]) - continue; + if (process_input(pfd[1].fd, 2)) + continue; + if (pfd[0].revents & POLLIN) + /* Data stream ready */ + if (process_input(pfd[0].fd, 1)) + continue; if (waitpid(writer, &status, 0) < 0) error_clnt("%s", lostchild); diff --git a/upload-pack.c b/upload-pack.c index 38ddac2e8..953ebe1a6 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -308,6 +308,23 @@ static void create_pack_file(void) } continue; } + if (0 <= pe && (pfd[pe].revents & (POLLIN|POLLHUP))) { + /* Status ready; we ship that in the side-band + * or dump to the standard error. + */ + sz = xread(pack_objects.err, progress, + sizeof(progress)); + if (0 < sz) + send_client_data(2, progress, sz); + else if (sz == 0) { + close(pack_objects.err); + pack_objects.err = -1; + } + else + goto fail; + /* give priority to status messages */ + continue; + } if (0 <= pu && (pfd[pu].revents & (POLLIN|POLLHUP))) { /* Data ready; we keep the last byte to ourselves * in case we detect broken rev-list, so that we @@ -345,21 +362,6 @@ static void create_pack_file(void) if (sz < 0) goto fail; } - if (0 <= pe && (pfd[pe].revents & (POLLIN|POLLHUP))) { - /* Status ready; we ship that in the side-band - * or dump to the standard error. - */ - sz = xread(pack_objects.err, progress, - sizeof(progress)); - if (0 < sz) - send_client_data(2, progress, sz); - else if (sz == 0) { - close(pack_objects.err); - pack_objects.err = -1; - } - else - goto fail; - } } if (finish_command(&pack_objects)) { |