From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: "René Scharfe" <l.s.r@web.de>,
"Derrick Stolee" <stolee@gmail.com>,
git@vger.kernel.org, "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: Re: [PATCH 2/2] read-cache: fix incorrect count and progress bar stalling
Date: Tue, 08 Jun 2021 12:58:42 +0200 [thread overview]
Message-ID: <87wnr4394y.fsf@evledraar.gmail.com> (raw)
In-Reply-To: <xmqqczsxtf8g.fsf@gitster.g>
On Tue, Jun 08 2021, Junio C Hamano wrote:
> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>
>>> So I think this pattern works:
>>>
>>> for (i = 0; i < nr; i++) {
>>> display_progress(p, i);
>>> /* work work work */
>>> }
>>> display_progress(p, nr);
>>>
>>> Alternatively, if the work part doesn't contain continue statements:
>>>
>>> for (i = 0; i < nr; i++) {
>>> /* work work work */
>>> display_progress(p, i + 1);
>>> }
>>
>> But yes, I agree with the issue in theory, but I think in practice we
>> don't need to worry about these 100% cases.
>
> Hmph, but in practice we do need to worry, don't we? Otherwise you
> wouldn't have started this thread and René wouldn't have responded.
I started this thread because of:
for (i = 0; i < large_number; i++) {
if (maybe_branch_here())
continue;
/* work work work */
display_progress(p, i);
}
display_progress(p, large_number);
Mainly because it's a special snowflake in how the process.c API is
used, with most other callsites doing:
for (i = 0; i < large_number; i++) {
display_progress(p, i + 1);
/* work work work */
}
Which yes, as René points out *could* hang on 100%, but I think in
practice isn't an issue here, and changing the code per my patch here
solves the practical issue with us always taking the maybe_branch_here()
(or enough that the progress bar hangs).
> I agree with the issue and I think we should count what we have
> finished.
Fair enough, but in the meantime can we take this patch? I think fixing
that (IMO in practice hypothetical issue) is much easier when we
consistently use that "i + 1" pattern above (which we mostly do
already). We can just search-replace "++i" to "i++" and "i + 1" to "i"
and have stop_progress() be what bumps it to 100%.
I have some unsent patches queued on top of this which has some general
fixes to edge cases in the progress.c API making that & more easier...q
next prev parent reply other threads:[~2021-06-08 11:10 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-07 14:43 [PATCH 0/2] trivial progress.c API usage fixes Ævar Arnfjörð Bjarmason
2021-06-07 14:43 ` [PATCH 1/2] read-cache.c: don't guard calls to progress.c API Ævar Arnfjörð Bjarmason
2021-06-07 15:28 ` Derrick Stolee
2021-06-07 15:52 ` Ævar Arnfjörð Bjarmason
2021-06-07 16:11 ` Derrick Stolee
2021-06-07 14:43 ` [PATCH 2/2] read-cache: fix incorrect count and progress bar stalling Ævar Arnfjörð Bjarmason
2021-06-07 15:31 ` Derrick Stolee
2021-06-07 15:58 ` Ævar Arnfjörð Bjarmason
2021-06-07 19:20 ` René Scharfe
2021-06-07 19:49 ` Ævar Arnfjörð Bjarmason
2021-06-07 23:41 ` Junio C Hamano
2021-06-08 10:58 ` Ævar Arnfjörð Bjarmason [this message]
2021-06-08 16:14 ` René Scharfe
2021-06-08 22:12 ` Ævar Arnfjörð Bjarmason
2021-06-10 5:30 ` Junio C Hamano
2021-06-10 15:14 ` René Scharfe
2021-06-10 15:14 ` René Scharfe
2021-06-14 11:07 ` Ævar Arnfjörð Bjarmason
2021-06-14 17:18 ` René Scharfe
2021-06-14 19:08 ` Ævar Arnfjörð Bjarmason
2021-06-15 2:32 ` Junio C Hamano
2021-06-15 15:14 ` René Scharfe
2021-06-15 16:46 ` Ævar Arnfjörð Bjarmason
2021-06-20 12:53 ` René Scharfe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wnr4394y.fsf@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=l.s.r@web.de \
--cc=pclouds@gmail.com \
--cc=stolee@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.