diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2022-08-08 17:25:57 +0200 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2022-08-19 18:18:53 +0200 |
commit | 61ee4517214cd8547ba7088fb4a53ec543d986b2 (patch) | |
tree | 09426e13ebac07fbec58d84c979fa759f9cea8cb /src/buildtool/graph_traverser/graph_traverser.hpp | |
parent | f19c4d9296881083b8dc313e03c6535c68daa7a2 (diff) | |
download | justbuild-61ee4517214cd8547ba7088fb4a53ec543d986b2.tar.gz |
Rebuild: Support proper progress printing
Diffstat (limited to 'src/buildtool/graph_traverser/graph_traverser.hpp')
-rw-r--r-- | src/buildtool/graph_traverser/graph_traverser.hpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/buildtool/graph_traverser/graph_traverser.hpp b/src/buildtool/graph_traverser/graph_traverser.hpp index acd1515a..0e81d46e 100644 --- a/src/buildtool/graph_traverser/graph_traverser.hpp +++ b/src/buildtool/graph_traverser/graph_traverser.hpp @@ -351,12 +351,19 @@ class GraphTraverser { RemoteExecutionConfig::PlatformProperties(), clargs_.build.timeout}; bool traversing{false}; - std::atomic<bool> failed{false}; + std::atomic<bool> done = false; + std::atomic<bool> failed = false; + std::condition_variable cv{}; + auto observer = + std::thread([this, &done, &cv]() { reporter_(&done, &cv); }); { Traverser t{executor, g, clargs_.jobs, &failed}; traversing = t.Traverse({std::begin(artifact_ids), std::end(artifact_ids)}); } + done = true; + cv.notify_all(); + observer.join(); if (traversing and not failed and clargs_.rebuild->dump_flaky) { std::ofstream file{*clargs_.rebuild->dump_flaky}; |