From: lars.schneider@autodesk.com
To: git@vger.kernel.org
Cc: peff@peff.net, gitster@pobox.com, nico@cam.org,
Lars Schneider <larsxschneider@gmail.com>
Subject: [PATCH v1] progress: print progress output for all operations taking longer than 2s
Date: Mon, 4 Dec 2017 21:36:47 +0100 [thread overview]
Message-ID: <20171204203647.30546-1-lars.schneider@autodesk.com> (raw)
From: Lars Schneider <larsxschneider@gmail.com>
In 180a9f2 we implemented a progress API which suppresses the progress
output if the progress has reached a specified percentage threshold
within a given time frame. In 8aade10 we simplified the API and set the
threshold to 0% and the time frame to 2 seconds for all delayed progress
operations. That means we would only see a progress output if we still
have 0% progress after 2 seconds. Consequently, only operations that
have a very slow start would show the progress output at all.
Remove the threshold entirely and print the progress output for all
operations that take longer than 2 seconds.
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
---
Hi,
a few weeks ago I was puzzled why the progress output is not shown in
certain situations [1]. I debugged the issue a bit today and came up
with this patch as solution. It is entirely possible that I misunderstood
the intentions of the progress API and therefore my patch is bogus.
In this case, please treat this email as RFC.
Thanks,
Lars
[1] https://public-inbox.org/git/DC84FB2E-A26E-4957-B5FA-BE6DDEC3411B@gmail.com/
Notes:
Base Commit: 1a4e40aa5d (1a4e40aa5dc16564af879142ba9dfbbb88d1e5ff)
Diff on Web: https://github.com/larsxschneider/git/commit/3e5fdc512a
Checkout: git fetch https://github.com/larsxschneider/git progress-fix-v1 && git checkout 3e5fdc512a
progress.c | 18 +++---------------
1 file changed, 3 insertions(+), 15 deletions(-)
diff --git a/progress.c b/progress.c
index 289678d43d..7fa1b0f235 100644
--- a/progress.c
+++ b/progress.c
@@ -34,7 +34,6 @@ struct progress {
unsigned total;
unsigned last_percent;
unsigned delay;
- unsigned delayed_percent_threshold;
struct throughput *throughput;
uint64_t start_ns;
};
@@ -86,16 +85,6 @@ static int display(struct progress *progress, unsigned n, const char *done)
if (progress->delay) {
if (!progress_update || --progress->delay)
return 0;
- if (progress->total) {
- unsigned percent = n * 100 / progress->total;
- if (percent > progress->delayed_percent_threshold) {
- /* inhibit this progress report entirely */
- clear_progress_signal();
- progress->delay = -1;
- progress->total = 0;
- return 0;
- }
- }
}
progress->last_value = n;
@@ -206,7 +195,7 @@ int display_progress(struct progress *progress, unsigned n)
}
static struct progress *start_progress_delay(const char *title, unsigned total,
- unsigned percent_threshold, unsigned delay)
+ unsigned delay)
{
struct progress *progress = malloc(sizeof(*progress));
if (!progress) {
@@ -219,7 +208,6 @@ static struct progress *start_progress_delay(const char *title, unsigned total,
progress->total = total;
progress->last_value = -1;
progress->last_percent = -1;
- progress->delayed_percent_threshold = percent_threshold;
progress->delay = delay;
progress->throughput = NULL;
progress->start_ns = getnanotime();
@@ -229,12 +217,12 @@ static struct progress *start_progress_delay(const char *title, unsigned total,
struct progress *start_delayed_progress(const char *title, unsigned total)
{
- return start_progress_delay(title, total, 0, 2);
+ return start_progress_delay(title, total, 2);
}
struct progress *start_progress(const char *title, unsigned total)
{
- return start_progress_delay(title, total, 0, 0);
+ return start_progress_delay(title, total, 0);
}
void stop_progress(struct progress **p_progress)
--
2.15.1
next reply other threads:[~2017-12-04 20:37 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-04 20:36 lars.schneider [this message]
2017-12-04 21:33 ` [PATCH v1] progress: print progress output for all operations taking longer than 2s Jeff King
2017-12-04 21:38 ` Junio C Hamano
2017-12-04 22:02 ` [PATCH 0/2] fix v2.15 progress regression Jeff King
2017-12-04 22:05 ` [PATCH 1/2] progress: set default delay threshold to 100%, not 0% Jeff King
2017-12-04 22:07 ` [PATCH 2/2] progress: drop delay-threshold code Jeff King
2017-12-05 10:37 ` Lars Schneider
2017-12-05 11:10 ` Ævar Arnfjörð Bjarmason
2017-12-05 12:28 ` Lars Schneider
2017-12-04 22:22 ` [PATCH 0/2] fix v2.15 progress regression Junio C Hamano
2017-12-04 21:35 ` [PATCH v1] progress: print progress output for all operations taking longer than 2s Junio C Hamano
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171204203647.30546-1-lars.schneider@autodesk.com \
--to=lars.schneider@autodesk.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=larsxschneider@gmail.com \
--cc=nico@cam.org \
--cc=peff@peff.net \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).