aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/build/worker.hh
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-10-05 00:38:35 +0200
committereldritch horrors <pennae@lix.systems>2024-10-05 20:12:13 +0000
commitfc6291e46dda940a69b627a3287b4633bb89f29f (patch)
tree0b1900880da86c30f19b0356379557c393a2ecc2 /src/libstore/build/worker.hh
parent40f154c0edc53e160b70fc60b2b5b8652dfbe84b (diff)
libstore: return goal results from Worker::run()
this will be needed to move all interesting result fields out of Goal proper and into WorkResult. once that is done we can treat goals as a totally internal construct of the worker mechanism, which also allows us to fully stop exposing unclear intermediate state to Worker users. Change-Id: I98d7778a4b5b2590b7b070bdfc164a22a0ef7190
Diffstat (limited to 'src/libstore/build/worker.hh')
-rw-r--r--src/libstore/build/worker.hh9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/libstore/build/worker.hh b/src/libstore/build/worker.hh
index fa1031907..6569de6ee 100644
--- a/src/libstore/build/worker.hh
+++ b/src/libstore/build/worker.hh
@@ -86,6 +86,7 @@ class Worker : public WorkerBase
{
public:
using Targets = std::map<GoalPtr, kj::Promise<Result<Goal::WorkResult>>>;
+ using Results = std::map<GoalPtr, Goal::WorkResult>;
private:
@@ -154,7 +155,7 @@ private:
/**
* Pass current stats counters to the logger for progress bar updates.
*/
- kj::Promise<Result<void>> updateStatistics();
+ kj::Promise<Result<Results>> updateStatistics();
AsyncSemaphore statisticsUpdateSignal{1};
std::optional<AsyncSemaphore::Token> statisticsUpdateInhibitor;
@@ -167,8 +168,8 @@ private:
statisticsUpdateInhibitor = {};
}
- kj::Promise<Result<void>> runImpl(Targets topGoals);
- kj::Promise<Result<void>> boopGC(LocalStore & localStore);
+ kj::Promise<Result<Results>> runImpl(Targets topGoals);
+ kj::Promise<Result<Results>> boopGC(LocalStore & localStore);
public:
@@ -265,7 +266,7 @@ public:
/**
* Loop until the specified top-level goals have finished.
*/
- std::vector<GoalPtr> run(std::function<Targets (GoalFactory &)> req);
+ Results run(std::function<Targets (GoalFactory &)> req);
/***
* The exit status in case of failure.