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:
commit
ada008a795
2 changed files with 15 additions and 23 deletions
|
|
@ -112,27 +112,6 @@ Goal::Co DrvOutputSubstitutionGoal::init()
|
||||||
if (failed)
|
if (failed)
|
||||||
continue;
|
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));
|
waitees.insert(worker.makePathSubstitutionGoal(outputInfo->outPath));
|
||||||
|
|
||||||
co_await await(std::move(waitees));
|
co_await await(std::move(waitees));
|
||||||
|
|
@ -150,6 +129,21 @@ Goal::Co DrvOutputSubstitutionGoal::realisationFetched(
|
||||||
co_return amDone(ecSuccess);
|
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()
|
std::string DrvOutputSubstitutionGoal::key()
|
||||||
{
|
{
|
||||||
return "a$" + std::string(id.to_string());
|
return "a$" + std::string(id.to_string());
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,6 @@ public:
|
||||||
DrvOutputSubstitutionGoal(const DrvOutput & id, Worker & worker);
|
DrvOutputSubstitutionGoal(const DrvOutput & id, Worker & worker);
|
||||||
|
|
||||||
Co init();
|
Co init();
|
||||||
Co
|
|
||||||
realisationFetched(Goals waitees, std::shared_ptr<const UnkeyedRealisation> outputInfo, nix::ref<nix::Store> sub);
|
|
||||||
|
|
||||||
void timedOut(Error && ex) override
|
void timedOut(Error && ex) override
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue