Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b9d5eea
)
Fixed more potential hang cases for incremental recursion.
author
Wayne Davison
<wayned@samba.org>
Wed, 14 Mar 2007 00:20:44 +0000
(
00:20
+0000)
committer
Wayne Davison
<wayned@samba.org>
Wed, 14 Mar 2007 00:20:44 +0000
(
00:20
+0000)
generator.c
patch
|
blob
|
blame
|
history
diff --git
a/generator.c
b/generator.c
index
e80daf2
..
d1864b7
100644
(file)
--- a/
generator.c
+++ b/
generator.c
@@
-1902,8
+1902,10
@@
void generate_files(int f_out, const char *local_name)
break;
}
break;
}
- while (
!cur_flist->next && !flist_eof
) {
+ while (
1
) {
check_for_finished_files(itemizing, code, 1);
check_for_finished_files(itemizing, code, 1);
+ if (cur_flist->next || flist_eof)
+ break;
wait_for_receiver();
}
} while ((cur_flist = cur_flist->next) != NULL);
wait_for_receiver();
}
} while ((cur_flist = cur_flist->next) != NULL);
@@
-1914,8
+1916,10
@@
void generate_files(int f_out, const char *local_name)
if (verbose > 2)
rprintf(FINFO, "generate_files phase=%d\n", phase);
if (verbose > 2)
rprintf(FINFO, "generate_files phase=%d\n", phase);
- while (
!msgdone_cnt
) {
+ while (
1
) {
check_for_finished_files(itemizing, code, 1);
check_for_finished_files(itemizing, code, 1);
+ if (msgdone_cnt)
+ break;
wait_for_receiver();
}
wait_for_receiver();
}
@@
-1929,8
+1933,10
@@
void generate_files(int f_out, const char *local_name)
write_ndx(f_out, NDX_DONE);
/* Read MSG_DONE for the redo phase (and any prior messages). */
write_ndx(f_out, NDX_DONE);
/* Read MSG_DONE for the redo phase (and any prior messages). */
- while (
msgdone_cnt <=
1) {
+ while (1) {
check_for_finished_files(itemizing, code, 0);
check_for_finished_files(itemizing, code, 0);
+ if (msgdone_cnt > 1)
+ break;
wait_for_receiver();
}
wait_for_receiver();
}