diff --git a/src/pb.rs b/src/pb.rs index db18a3a8..c622849c 100644 --- a/src/pb.rs +++ b/src/pb.rs @@ -313,7 +313,7 @@ impl ProgressBar { fn draw(&mut self) { let now = SteadyTime::now(); if let Some(mrr) = self.max_refresh_rate { - if now - self.last_refresh_time < mrr { + if now - self.last_refresh_time < mrr && self.current < self.total { return; } } diff --git a/tests/lib.rs b/tests/lib.rs index fd06ee63..aac46cf4 100644 --- a/tests/lib.rs +++ b/tests/lib.rs @@ -106,3 +106,18 @@ fn npm_bar() { } pb.finish_println("done!"); } + +#[test] +// see: issue 45# +fn final_redraw_max_refresh_rate() { + let count = 500; + let mut pb = ProgressBar::new(count); + pb.format("╢▌▌░╟"); + pb.set_max_refresh_rate(Some(Duration::from_millis(100))); + for _ in 0..count { + pb.inc(); + thread::sleep(Duration::from_millis(5)); + } + pb.finish_println("done!"); +} +