<div class="gmail_quote">On Mon, Oct 5, 2009 at 1:51 AM, Matt McCutchen <span dir="ltr">&lt;<a href="mailto:matt@mattmccutchen.net">matt@mattmccutchen.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Would you care to explain the impact of this change on the rsync I/O<br>
design in terms that I might understand?  It looks like you merged two<br>
switch statements over possible message types, reducing code<br>
duplication, but that&#39;s all I can really tell.<br>
</blockquote><div><br>In addition to simplifying the code, it makes the message pipe more robust.  The old code just sent raw file-list data (of unspecified length) as an implied part of the MSG_FLIST message.  The new code packs raw data into MSG_DATA messages, which will allow other messages to intermingle with the data.  If the code had been working like this from the start of 3.0, I could have fixed the issue where an I/O error isn&#39;t getting noticed soon enough just by having the sender send its I/O error message before the end of the file-list data.<br>
<br>As for the unsightly files-from code block, that will be changing soon, since I&#39;m currently working on simplifying the I/O code.  The new code will mainly use a single buffered-I/O function for all the normal pipelining of data, making it simpler, less likely to jam up, and hopefully more performant too.<br>

 </div></div>..wayne..<br>