1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-08 19:46:02 +01:00

Merge pull request #14310 from obsidiansystems/inline-drv-output-subst-goal

Inline `realisationFetched`
This commit is contained in:
John Ericson 2025-10-21 06:03:06 +00:00 committed by GitHub
commit ada008a795
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 23 deletions

View file

@ -112,27 +112,6 @@ Goal::Co DrvOutputSubstitutionGoal::init()
if (failed)
continue;
co_return realisationFetched(std::move(waitees), outputInfo, sub);
}
/* None left. Terminate this goal and let someone else deal
with it. */
debug("derivation output '%s' is required, but there is no substituter that can provide it", id.to_string());
if (substituterFailed) {
worker.failedSubstitutions++;
worker.updateProgress();
}
/* Hack: don't indicate failure if there were no substituters.
In that case the calling derivation should just do a
build. */
co_return amDone(substituterFailed ? ecFailed : ecNoSubstituters);
}
Goal::Co DrvOutputSubstitutionGoal::realisationFetched(
Goals waitees, std::shared_ptr<const UnkeyedRealisation> outputInfo, nix::ref<nix::Store> sub)
{
waitees.insert(worker.makePathSubstitutionGoal(outputInfo->outPath));
co_await await(std::move(waitees));
@ -150,6 +129,21 @@ Goal::Co DrvOutputSubstitutionGoal::realisationFetched(
co_return amDone(ecSuccess);
}
/* None left. Terminate this goal and let someone else deal
with it. */
debug("derivation output '%s' is required, but there is no substituter that can provide it", id.to_string());
if (substituterFailed) {
worker.failedSubstitutions++;
worker.updateProgress();
}
/* Hack: don't indicate failure if there were no substituters.
In that case the calling derivation should just do a
build. */
co_return amDone(substituterFailed ? ecFailed : ecNoSubstituters);
}
std::string DrvOutputSubstitutionGoal::key()
{
return "a$" + std::string(id.to_string());

View file

@ -32,8 +32,6 @@ public:
DrvOutputSubstitutionGoal(const DrvOutput & id, Worker & worker);
Co init();
Co
realisationFetched(Goals waitees, std::shared_ptr<const UnkeyedRealisation> outputInfo, nix::ref<nix::Store> sub);
void timedOut(Error && ex) override
{