Re: [PATCH 1/1] Improve progress display in kB range.
From: James Cloos <hidden>
Date: 2016-06-15 22:46:38
|> Therefore, in practice — and as I have witnessed several thousand times
|> without ever having seen a contrary example — display_throughput() is
|> called *durring* a download only when total & 0xFFF == 0xFFF.
Another possibility is an off-by-one error. The relevant part of fill()
looks like:
,----< excerpt from index-pack.c:fill() >
| do {
| ssize_t ret = xread(input_fd, input_buffer + input_len,
| sizeof(input_buffer) - input_len);
| if (ret <= 0) {
| if (!ret)
| die("early EOF");
| die("read error on input: %s", strerror(errno));
| }
| input_len += ret;
| if (from_stdin)
| display_throughput(progress, consumed_bytes + input_len);
| } while (input_len < min);
| return input_buffer;
| }
`----
if *(input_buffer + ret) is the last read octet rather than the next
empty octet, that would also explain what I see.
Perhaps that call to display_throughput() should have an extra +1?
-JimC
--
James Cloos [off-list ref] OpenPGP: 1024D/ED7DAEA6