Samuel Merritt 98d185905a Cleanup for iterators in SegmentedIterable
We had a pair of large, complicated iterators to handle fetching all
the segment data, and they were hard to read and think about. I tried
to break them out into some simpler pieces:

 * one to handle coalescing multiple requests to the same segment

 * one to handle fetching the bytes from each segment

 * one to check that the download isn't taking too long

 * one to count the bytes and make sure we sent the right number

 * one to catch errors and handle cleanup

It's more nesting, but each level now does just one thing.

Change-Id: If6f5cbd79edeff6ecb81350792449ce767919bcc
2018-02-02 11:30:49 -08:00
..
2010-07-12 17:03:45 -05:00
2017-09-13 06:44:02 +00:00
2017-11-07 15:39:25 +11:00