summaryrefslogtreecommitdiff
path: root/src/buildtool/graph_traverser/graph_traverser.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/graph_traverser/graph_traverser.hpp')
-rw-r--r--src/buildtool/graph_traverser/graph_traverser.hpp9
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};