49 typedef enum {ecSuccess, ecFailed, ecNoSubstituters, ecIncompleteClosure} ExitCode;
92 std::shared_ptr<Error> ex = {};
93 bool permanentFailure =
false;
94 bool timedOut =
false;
95 bool hashMismatch =
false;
96 bool checkMismatch =
false;
103 kj::Promise<void> waitForAWhile();
104 kj::Promise<Result<void>>
105 waitForGoals(kj::Array<std::pair<
GoalPtr, kj::Promise<Result<WorkResult>>>> dependencies)
noexcept;
107 template<std::derived_from<Goal>... G>
108 kj::Promise<Result<void>>
109 waitForGoals(std::pair<std::shared_ptr<G>, kj::Promise<Result<WorkResult>>>... goals)
noexcept
112 kj::arrOf<std::pair<
GoalPtr, kj::Promise<Result<WorkResult>>>>(std::move(goals)...)
116 virtual kj::Promise<Result<WorkResult>> workImpl() noexcept = 0;
118 std::
string lixAsyncTaskContext()
const
129 virtual ~Goal() noexcept(false)
131 trace(
"goal destroyed");
134 kj::Promise<Result<WorkResult>> work() noexcept;
136 virtual
void waiteeDone(GoalPtr waitee) { }
138 void trace(std::string_view s);
140 std::string getName()
const
145 virtual void cleanup() { }