84 WeakGoals wantingToBuild;
89 std::list<Child> children;
100 size_t nrSubstitutions;
106 std::map<StorePath, std::weak_ptr<DerivationGoal>> derivationGoals;
107 std::map<StorePath, std::weak_ptr<PathSubstitutionGoal>> substitutionGoals;
108 std::map<DrvOutput, std::weak_ptr<DrvOutputSubstitutionGoal>> drvOutputSubstitutionGoals;
113 WeakGoals waitingForAnyGoal;
118 WeakGoals waitingForAWhile;
123 steady_time_point lastWokenUp;
128 std::map<StorePath, bool> pathContentsGoodCache;
165 std::unique_ptr<HookInstance> hook;
168 uint64_t expectedBuilds = 0;
169 uint64_t doneBuilds = 0;
170 uint64_t failedBuilds = 0;
171 uint64_t runningBuilds = 0;
173 uint64_t expectedSubstitutions = 0;
174 uint64_t doneSubstitutions = 0;
175 uint64_t failedSubstitutions = 0;
176 uint64_t runningSubstitutions = 0;
177 uint64_t expectedDownloadSize = 0;
178 uint64_t doneDownloadSize = 0;
179 uint64_t expectedNarSize = 0;
180 uint64_t doneNarSize = 0;
199 std::shared_ptr<DerivationGoal> makeDerivationGoalCommon(
201 std::function<std::shared_ptr<DerivationGoal>()> mkDrvGoal);
203 std::shared_ptr<DerivationGoal> makeDerivationGoal(
205 const OutputsSpec & wantedOutputs, BuildMode buildMode = bmNormal);
206 std::shared_ptr<DerivationGoal> makeBasicDerivationGoal(
208 const OutputsSpec & wantedOutputs, BuildMode buildMode = bmNormal);
214 std::shared_ptr<DrvOutputSubstitutionGoal> makeDrvOutputSubstitutionGoal(
const DrvOutput &
id, RepairFlag
repair = NoRepair, std::optional<ContentAddress> ca = std::nullopt);
249 void childStarted(
GoalPtr goal,
const std::set<MuxablePipePollState::CommChannel> & channels,
250 bool inBuildSlot,
bool respectTimeouts);
311 unsigned int failingExitStatus();
319 void markContentsGood(
const StorePath & path);
321 void updateProgress()
323 actDerivations.progress(doneBuilds, expectedBuilds + doneBuilds, runningBuilds, failedBuilds);
324 actSubstitutions.progress(doneSubstitutions, expectedSubstitutions + doneSubstitutions, runningSubstitutions, failedSubstitutions);
325 act.setExpected(actFileTransfer, expectedDownloadSize + doneDownloadSize);
326 act.setExpected(actCopyPath, expectedNarSize + doneNarSize);