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 (from parent 1:
89cb472
)
Avoid a potential hang when --remove-*-files is active.
author
Wayne Davison
<wayned@samba.org>
Mon, 10 Nov 2008 01:59:11 +0000
(17:59 -0800)
committer
Wayne Davison
<wayned@samba.org>
Mon, 10 Nov 2008 01:59:11 +0000
(17:59 -0800)
io.c
patch
|
blob
|
blame
|
history
diff --git
a/io.c
b/io.c
index
a4e2435
..
ff32006
100644
(file)
--- a/
io.c
+++ b/
io.c
@@
-447,9
+447,14
@@
static void read_msg_fd(void)
* this, sender-side deletions were mostly happening at the end. */
void increment_active_files(int ndx, int itemizing, enum logcode code)
{
* this, sender-side deletions were mostly happening at the end. */
void increment_active_files(int ndx, int itemizing, enum logcode code)
{
- /* TODO: tune these limits? */
- while (active_filecnt >= (active_bytecnt >= 128*1024 ? 10 : 50)) {
+ while (1) {
+ /* TODO: tune these limits? */
+ int limit = active_bytecnt >= 128*1024 ? 10 : 50;
+ if (active_filecnt < limit)
+ break;
check_for_finished_files(itemizing, code, 0);
check_for_finished_files(itemizing, code, 0);
+ if (active_filecnt < limit)
+ break;
if (iobuf_out_cnt)
io_flush(NORMAL_FLUSH);
else
if (iobuf_out_cnt)
io_flush(NORMAL_FLUSH);
else