diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/progress_reporting/TARGETS | 1 | ||||
-rw-r--r-- | src/buildtool/progress_reporting/base_progress_reporter.cpp | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/buildtool/progress_reporting/TARGETS b/src/buildtool/progress_reporting/TARGETS index acff7b61..c58be2d3 100644 --- a/src/buildtool/progress_reporting/TARGETS +++ b/src/buildtool/progress_reporting/TARGETS @@ -18,6 +18,7 @@ , "deps": [ ["src/buildtool/graph_traverser", "graph_traverser"] , ["src/buildtool/common", "common"] + , ["@", "gsl-lite", "", "gsl-lite"] , "progress" ] } diff --git a/src/buildtool/progress_reporting/base_progress_reporter.cpp b/src/buildtool/progress_reporting/base_progress_reporter.cpp index 02a6a162..449f1dde 100644 --- a/src/buildtool/progress_reporting/base_progress_reporter.cpp +++ b/src/buildtool/progress_reporting/base_progress_reporter.cpp @@ -4,6 +4,8 @@ #include <mutex> +#include <gsl-lite/gsl-lite.hpp> + #include "fmt/core.h" #include "src/buildtool/common/statistics.hpp" #include "src/buildtool/logging/logger.hpp" @@ -15,6 +17,7 @@ auto BaseProgressReporter::Reporter() -> GraphTraverser::progress_reporter_t { auto const& stats = Statistics::Instance(); std::unique_lock<std::mutex> lock(m); int64_t delay = kStartDelayMillis; + int total = gsl::narrow<int>(Progress::Instance().OriginMap().size()); while (not *done) { cv->wait_for(lock, std::chrono::milliseconds(delay)); if (not *done) { @@ -41,8 +44,10 @@ auto BaseProgressReporter::Reporter() -> GraphTraverser::progress_reporter_t { " ({}{})", sample, active > 1 ? ", ..." : ""); } } + constexpr int kOneHundred{100}; Logger::Log(LogLevel::Progress, - "{} cached, {} run, {} processing{}.", + "[{:3}%] {} cached, {} run, {} processing{}.", + (cached + run) * kOneHundred / total, cached, run, active, |