progress meter: add disabled code for a more stable ETA
Compiles to ~25 bytes if enabled. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
aa617ac097
commit
edccc982e5
@ -1949,6 +1949,7 @@ typedef struct bb_progress_t {
|
|||||||
unsigned last_update_sec;
|
unsigned last_update_sec;
|
||||||
unsigned last_change_sec;
|
unsigned last_change_sec;
|
||||||
unsigned start_sec;
|
unsigned start_sec;
|
||||||
|
/*unsigned last_eta;*/
|
||||||
const char *curfile;
|
const char *curfile;
|
||||||
} bb_progress_t;
|
} bb_progress_t;
|
||||||
|
|
||||||
|
@ -57,6 +57,9 @@ void FAST_FUNC bb_progress_init(bb_progress_t *p, const char *curfile)
|
|||||||
p->last_update_sec = p->start_sec;
|
p->last_update_sec = p->start_sec;
|
||||||
p->last_change_sec = p->start_sec;
|
p->last_change_sec = p->start_sec;
|
||||||
p->last_size = 0;
|
p->last_size = 0;
|
||||||
|
#if 0
|
||||||
|
p->last_eta = INT_MAX;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* File already had beg_size bytes.
|
/* File already had beg_size bytes.
|
||||||
@ -192,6 +195,16 @@ void FAST_FUNC bb_progress_update(bb_progress_t *p,
|
|||||||
/* if 32bit, can overflow ^^^^^^^^^^, but this would only show bad ETA */
|
/* if 32bit, can overflow ^^^^^^^^^^, but this would only show bad ETA */
|
||||||
if (eta >= 1000*60*60)
|
if (eta >= 1000*60*60)
|
||||||
eta = 1000*60*60 - 1;
|
eta = 1000*60*60 - 1;
|
||||||
|
#if 0
|
||||||
|
/* To prevent annoying "back-and-forth" estimation jitter,
|
||||||
|
* if new ETA is larger than the last just by a few seconds,
|
||||||
|
* disregard it, and show last one. The end result is that
|
||||||
|
* ETA usually only decreases, unless download slows down a lot.
|
||||||
|
*/
|
||||||
|
if ((unsigned)(eta - p->last_eta) < 10)
|
||||||
|
eta = p->last_eta;
|
||||||
|
p->last_eta = eta;
|
||||||
|
#endif
|
||||||
secs = eta % 3600;
|
secs = eta % 3600;
|
||||||
hours = eta / 3600;
|
hours = eta / 3600;
|
||||||
fprintf(stderr, "%3u:%02u:%02u ETA", hours, secs / 60, secs % 60);
|
fprintf(stderr, "%3u:%02u:%02u ETA", hours, secs / 60, secs % 60);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user