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,7 +112,21 @@ Goal::Co DrvOutputSubstitutionGoal::init()
|
||||||
if (failed)
|
if (failed)
|
||||||
continue;
|
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
|
/* None left. Terminate this goal and let someone else deal
|
||||||
|
|
@ -130,26 +144,6 @@ Goal::Co DrvOutputSubstitutionGoal::init()
|
||||||
co_return amDone(substituterFailed ? ecFailed : ecNoSubstituters);
|
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));
|
|
||||||
|
|
||||||
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()
|
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