[libc] Refresh benchmark progress bar when needed.

NOKEYCHECK=True
GitOrigin-RevId: ab577807165c45abfbadc117125ec7275cdcc0cf
diff --git a/benchmarks/LibcMemoryBenchmarkMain.cpp b/benchmarks/LibcMemoryBenchmarkMain.cpp
index 99c5879..770336e 100644
--- a/benchmarks/LibcMemoryBenchmarkMain.cpp
+++ b/benchmarks/LibcMemoryBenchmarkMain.cpp
@@ -262,17 +262,21 @@
     };
   }
 
-  void reportProgress(BenchmarkStatus BS) {
+  void reportProgress() {
+    static size_t LastPercent = -1;
     const size_t TotalSteps = Study.Measurements.capacity();
     const size_t Steps = Study.Measurements.size();
     const size_t Percent = 100 * Steps / TotalSteps;
+    if (Percent == LastPercent)
+      return;
+    LastPercent = Percent;
     size_t I = 0;
     errs() << '[';
     for (; I <= Percent; ++I)
       errs() << '#';
     for (; I <= 100; ++I)
       errs() << '_';
-    errs() << "] " << Percent << "%\r";
+    errs() << "] " << Percent << '%' << '\r';
   }
 
   void runTrials(const BenchmarkOptions &Options,
@@ -283,7 +287,7 @@
     for (size_t i = 0; i < NumTrials; ++i) {
       const BenchmarkResult Result = benchmark(Options, B, B.functor());
       Study.Measurements.push_back(Result.BestGuess);
-      reportProgress(Result.TerminationStatus);
+      reportProgress();
     }
   }
 
@@ -330,6 +334,7 @@
                            .concat(Output));
   json::OStream JOS(FOS);
   serializeToJson(S, JOS);
+  FOS << "\n";
 }
 
 void main() {