21class DrvOutputSubstitutionGoal :
public Goal {
32 std::shared_ptr<const Realisation> outputInfo;
37 std::list<ref<Store>> subs;
42 std::shared_ptr<Store> sub;
48 kj::Own<kj::CrossThreadPromiseFulfiller<void>> outPipe;
49 std::future<std::shared_ptr<const Realisation>> result;
52 std::shared_ptr<DownloadState> downloadState;
57 bool substituterFailed =
false;
60 DrvOutputSubstitutionGoal(
64 RepairFlag repair = NoRepair,
65 std::optional<ContentAddress> ca = std::nullopt
68 kj::Promise<Result<WorkResult>> tryNext()
noexcept;
69 kj::Promise<Result<WorkResult>> realisationFetched()
noexcept;
70 kj::Promise<Result<WorkResult>> outPathValid()
noexcept;
71 kj::Promise<Result<WorkResult>> finished()
noexcept;
73 kj::Promise<Result<WorkResult>> workImpl()
noexcept override;
JobCategory jobCategory() const override
Hint for the scheduler, which concurrency limit applies.
Definition drv-output-substitution-goal.hh:75