diff options
author | eldritch horrors <pennae@lix.systems> | 2024-10-20 22:55:00 +0200 |
---|---|---|
committer | eldritch horrors <pennae@lix.systems> | 2024-10-23 11:55:12 +0000 |
commit | 5f1344dd8aec59ce654a0fac30b1842e2e68299c (patch) | |
tree | 01e1205ec85556983b33ca5bc596703330570071 /src/libstore/build/entry-points.cc | |
parent | faee771b302dc2871e3a91e3797cf1417416ce43 (diff) |
libstore: turn Worker::run into a promise
a first little step into pushing the event loops up, up and away.
eventually we will want them to be instantiated only at the roots
of every thread (since kj binds loops to threads), but not today.
Change-Id: Ic97f1debba382a5a3f46daeaf2d6d434ee42569f
Diffstat (limited to 'src/libstore/build/entry-points.cc')
-rw-r--r-- | src/libstore/build/entry-points.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/libstore/build/entry-points.cc b/src/libstore/build/entry-points.cc index f7669db5d..36ad35be0 100644 --- a/src/libstore/build/entry-points.cc +++ b/src/libstore/build/entry-points.cc @@ -15,7 +15,7 @@ void Store::buildPaths(const std::vector<DerivedPath> & reqs, BuildMode buildMod for (auto & br : reqs) goals.emplace_back(gf.makeGoal(br, buildMode)); return goals; - }); + }).wait(aio.waitScope).value(); StringSet failed; std::shared_ptr<Error> ex; @@ -54,7 +54,7 @@ std::vector<KeyedBuildResult> Store::buildPathsWithResults( goals.emplace_back(gf.makeGoal(req, buildMode)); } return goals; - }).goals; + }).wait(aio.waitScope).value().goals; std::vector<KeyedBuildResult> results; @@ -74,7 +74,7 @@ BuildResult Store::buildDerivation(const StorePath & drvPath, const BasicDerivat Worker::Targets goals; goals.emplace_back(gf.makeBasicDerivationGoal(drvPath, drv, OutputsSpec::All{}, buildMode)); return goals; - }); + }).wait(aio.waitScope).value(); auto & result = results.goals.begin()->second; return result.result.restrictTo(DerivedPath::Built { .drvPath = makeConstantStorePathRef(drvPath), @@ -100,7 +100,7 @@ void Store::ensurePath(const StorePath & path) Worker::Targets goals; goals.emplace_back(gf.makePathSubstitutionGoal(path)); return goals; - }); + }).wait(aio.waitScope).value(); auto & result = results.goals.begin()->second; if (result.exitCode != Goal::ecSuccess) { @@ -121,7 +121,7 @@ void Store::repairPath(const StorePath & path) Worker::Targets goals; goals.emplace_back(gf.makePathSubstitutionGoal(path, Repair)); return goals; - }); + }).wait(aio.waitScope).value(); auto & result = results.goals.begin()->second; if (result.exitCode != Goal::ecSuccess) { @@ -140,7 +140,7 @@ void Store::repairPath(const StorePath & path) bmRepair )); return goals; - }); + }).wait(aio.waitScope).value(); } else throw Error(results.failingExitStatus, "cannot repair path '%s'", printStorePath(path)); } |