diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2025-04-08 13:24:13 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2025-04-08 13:29:14 +0200 |
commit | 574873c7fed97c5df26e33dda8d6cc7f221fad8a (patch) | |
tree | a071d17699be02666dba2003066c0cb9f34b50c2 | |
parent | a0b64bc327b4ed57f8056f2597b3bc5e9736e8ee (diff) | |
download | justbuild-574873c7fed97c5df26e33dda8d6cc7f221fad8a.tar.gz |
executor: also track begin and end of tree-overlay operations
Those operations require fetching objects through the network. The
fetch is already restricted to only the tree-objects where a merge
is necessary, leaving out unchanged trees as well as all blobs.
Still, some time may be required, especially over slow networks.
Therefore report this activity in the progress.
-rw-r--r-- | src/buildtool/execution_engine/executor/executor.hpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/buildtool/execution_engine/executor/executor.hpp b/src/buildtool/execution_engine/executor/executor.hpp index 1981cb28..e86853fb 100644 --- a/src/buildtool/execution_engine/executor/executor.hpp +++ b/src/buildtool/execution_engine/executor/executor.hpp @@ -84,7 +84,11 @@ class ExecutorImpl { [[nodiscard]] static auto ExecuteTreeOverlayAction( Logger const& logger, gsl::not_null<DependencyGraph::ActionNode const*> const& action, - IExecutionApi const& api) -> std::optional<IExecutionResponse::Ptr> { + IExecutionApi const& api, + + gsl::not_null<Progress*> const& progress) + -> std::optional<IExecutionResponse::Ptr> { + progress->TaskTracker().Start(action->Content().Id()); std::vector<DependencyGraph::NamedArtifactNodePtr> inputs = action->Dependencies(); std::sort(inputs.begin(), inputs.end(), [](auto a, auto b) { @@ -124,6 +128,7 @@ class ExecutorImpl { } tree_artifact.SetObjectInfo( tree.digest, ObjectType::Tree, failed_inputs); + progress->TaskTracker().Stop(action->Content().Id()); return std::nullopt; } @@ -142,7 +147,7 @@ class ExecutorImpl { gsl::not_null<Progress*> const& progress) -> std::optional<IExecutionResponse::Ptr> { if (action->Content().IsTreeOverlayAction()) { - return ExecuteTreeOverlayAction(logger, action, api); + return ExecuteTreeOverlayAction(logger, action, api, progress); } auto const& inputs = action->Dependencies(); auto const tree_action = action->Content().IsTreeAction(); |