From 1121f0d8ec117ecfcf8caba98c2e6a575fd2455b Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 14 Oct 2025 14:30:09 -0400 Subject: [PATCH] Inline `realisationFetched` Now that we are using coroutines, we don't need this to be a separate method of `DrvOutputSubstitutionGoal`. --- .../build/drv-output-substitution-goal.cc | 36 ++++++++----------- .../build/drv-output-substitution-goal.hh | 2 -- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/src/libstore/build/drv-output-substitution-goal.cc b/src/libstore/build/drv-output-substitution-goal.cc index 568a06201..8d0a307be 100644 --- a/src/libstore/build/drv-output-substitution-goal.cc +++ b/src/libstore/build/drv-output-substitution-goal.cc @@ -112,7 +112,21 @@ Goal::Co DrvOutputSubstitutionGoal::init() if (failed) continue; - co_return realisationFetched(std::move(waitees), outputInfo, sub); + waitees.insert(worker.makePathSubstitutionGoal(outputInfo->outPath)); + + co_await await(std::move(waitees)); + + trace("output path substituted"); + + if (nrFailed > 0) { + debug("The output path of the derivation output '%s' could not be substituted", id.to_string()); + co_return amDone(nrNoSubstituters > 0 ? ecNoSubstituters : ecFailed); + } + + worker.store.registerDrvOutput({*outputInfo, id}); + + trace("finished"); + co_return amDone(ecSuccess); } /* None left. Terminate this goal and let someone else deal @@ -130,26 +144,6 @@ Goal::Co DrvOutputSubstitutionGoal::init() co_return amDone(substituterFailed ? ecFailed : ecNoSubstituters); } -Goal::Co DrvOutputSubstitutionGoal::realisationFetched( - Goals waitees, std::shared_ptr outputInfo, nix::ref sub) -{ - waitees.insert(worker.makePathSubstitutionGoal(outputInfo->outPath)); - - co_await await(std::move(waitees)); - - trace("output path substituted"); - - if (nrFailed > 0) { - debug("The output path of the derivation output '%s' could not be substituted", id.to_string()); - co_return amDone(nrNoSubstituters > 0 ? ecNoSubstituters : ecFailed); - } - - worker.store.registerDrvOutput({*outputInfo, id}); - - trace("finished"); - co_return amDone(ecSuccess); -} - std::string DrvOutputSubstitutionGoal::key() { return "a$" + std::string(id.to_string()); diff --git a/src/libstore/include/nix/store/build/drv-output-substitution-goal.hh b/src/libstore/include/nix/store/build/drv-output-substitution-goal.hh index c01e99dd1..6310e0d2c 100644 --- a/src/libstore/include/nix/store/build/drv-output-substitution-goal.hh +++ b/src/libstore/include/nix/store/build/drv-output-substitution-goal.hh @@ -32,8 +32,6 @@ public: DrvOutputSubstitutionGoal(const DrvOutput & id, Worker & worker); Co init(); - Co - realisationFetched(Goals waitees, std::shared_ptr outputInfo, nix::ref sub); void timedOut(Error && ex) override {