diff --git a/.gitignore b/.gitignore index b067edd..5a32cf0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /Manifest.toml +.vscode diff --git a/src/ProgressMeter.jl b/src/ProgressMeter.jl index 6dfd847..2c7e73a 100644 --- a/src/ProgressMeter.jl +++ b/src/ProgressMeter.jl @@ -265,8 +265,9 @@ function updateProgress!(p::Progress; showvalues = (), truncate_lines = false, v p.desc = desc end p.offset = offset + if p.counter >= p.n - if p.counter == p.n && p.printed + if p.counter == p.n #&& p.printed t = time() barlen = p.barlen isa Nothing ? tty_width(p.desc, p.output, p.showspeed) : p.barlen percentage_complete = 100.0 * p.counter / p.n @@ -292,6 +293,7 @@ function updateProgress!(p::Progress; showvalues = (), truncate_lines = false, v end return nothing end + if ignore_predictor || predicted_updates_per_dt_have_passed(p) t = time() if p.counter > 2 @@ -460,7 +462,9 @@ function updateProgress!(p::ProgressUnknown; showvalues = (), truncate_lines = f end end -predicted_updates_per_dt_have_passed(p::AbstractProgress) = p.counter - p.prev_update_count >= p.check_iterations +predicted_updates_per_dt_have_passed(p::AbstractProgress) = + p.counter <= 2 || # otherwise the first 2 are never printed, independently of dt + p.counter - p.prev_update_count >= p.check_iterations function is_threading(p::AbstractProgress) Threads.nthreads() == 1 && return false diff --git a/test/test.jl b/test/test.jl index e4c4ecc..20e09de 100644 --- a/test/test.jl +++ b/test/test.jl @@ -12,6 +12,11 @@ end println("Testing original interface...") testfunc(107, 0.01, 0.01) +println("Testing n=1") # Issue #258 +testfunc(1, 0.1, 1) + +println("Testing n=2") # Issue #258 +testfunc(1, 0.1, 1) function testfunc2(n, dt, tsleep, desc, barlen) p = ProgressMeter.Progress(n, dt, desc, barlen)