The branch, master has been updated
       via  1e9ee19 Look for got_kill_signal in a couple more spots.
      from  9bf0658 Improve logic of code vs exit_code (etc.) in cleanup.

;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 1e9ee19a716b72454dfeab663802c626b81cdf2e
Author: Wayne Davison <way...@samba.org>
Date:   Mon May 27 22:53:48 2013 -0700

    Look for got_kill_signal in a couple more spots.

-----------------------------------------------------------------------

Summary of changes:
 io.c |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/io.c b/io.c
index 2c69b82..3036903 100644
--- a/io.c
+++ b/io.c
@@ -514,6 +514,13 @@ void restore_iobuf_size(xbuf *out)
        }
 }
 
+static void handle_kill_signal(BOOL flush_ok)
+{
+       got_kill_signal = -1;
+       flush_ok_after_signal = flush_ok;
+       exit_cleanup(RERR_SIGNAL);
+}
+
 /* Perform buffered input and/or output until specified conditions are met.
  * When given a "needed" read or write request, this returns without doing any
  * I/O if the needed input bytes or write space is already available.  Once I/O
@@ -735,6 +742,9 @@ static char *perform_io(size_t needed, int flags)
                        break;
                }
 
+               if (got_kill_signal > 0)
+                       handle_kill_signal(True);
+
                if (extra_flist_sending_enabled) {
                        if (file_total - file_old_total < MAX_FILECNT_LOOKAHEAD 
&& IN_MULTIPLEXED_AND_READY)
                                tv.tv_sec = 0;
@@ -854,11 +864,8 @@ static char *perform_io(size_t needed, int flags)
                        }
                }
 
-               if (got_kill_signal > 0) {
-                       got_kill_signal = -1;
-                       flush_ok_after_signal = True;
-                       exit_cleanup(RERR_SIGNAL);
-               }
+               if (got_kill_signal > 0)
+                       handle_kill_signal(True);
 
                /* We need to help prevent deadlock by doing what reading
                 * we can whenever we are here trying to write. */
@@ -879,6 +886,9 @@ static char *perform_io(size_t needed, int flags)
        }
   double_break:
 
+       if (got_kill_signal > 0)
+               handle_kill_signal(True);
+
        data = iobuf.in.buf + iobuf.in.pos;
 
        if (flags & PIO_CONSUME_INPUT) {
@@ -2339,7 +2349,7 @@ int io_end_multiplex_out(int mode)
        iobuf.out.len = 0;
        iobuf.out_empty_len = 0;
        if (got_kill_signal > 0) /* Just in case... */
-               exit_cleanup(RERR_SIGNAL);
+               handle_kill_signal(False);
        got_kill_signal = -1;
 
        return ret;


-- 
The rsync repository.
_______________________________________________
rsync-cvs mailing list
rsync-cvs@lists.samba.org
https://lists.samba.org/mailman/listinfo/rsync-cvs

Reply via email to