diff options
author | eldritch horrors <pennae@lix.systems> | 2024-07-26 20:19:21 +0200 |
---|---|---|
committer | eldritch horrors <pennae@lix.systems> | 2024-08-02 13:52:15 +0000 |
commit | e5177dddff13e7e5bb1bdecf28776822c6dba528 (patch) | |
tree | 16245e3f8424990787c0195449e3dde356db5259 /src/libstore/build/goal.cc | |
parent | dfcab1c3f09971cba6a198ba81158d1190975165 (diff) |
libstore: move Goal::amDone to Worker
we still mutate goal state to store the results of any given goal run,
but now we also have that information in Worker and could in theory do
something else with it. we could return a map of goal to goal results,
which would also let us better diagnose failures of subgoals (at all).
Change-Id: I1df956bbd9fa8cc9485fb6df32918d68dda3ff48
Diffstat (limited to 'src/libstore/build/goal.cc')
-rw-r--r-- | src/libstore/build/goal.cc | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/src/libstore/build/goal.cc b/src/libstore/build/goal.cc index 70ef5706e..40a3bae8d 100644 --- a/src/libstore/build/goal.cc +++ b/src/libstore/build/goal.cc @@ -45,31 +45,6 @@ void Goal::waiteeDone(GoalPtr waitee, ExitCode result) } -Goal::Finished Goal::amDone(ExitCode result, std::optional<Error> ex) -{ - trace("done"); - assert(!exitCode.has_value()); - exitCode = result; - - if (ex) { - if (!waiters.empty()) - logError(ex->info()); - else - this->ex = std::make_unique<Error>(std::move(*ex)); - } - - for (auto & i : waiters) { - GoalPtr goal = i.lock(); - if (goal) goal->waiteeDone(shared_from_this(), result); - } - waiters.clear(); - worker.removeGoal(shared_from_this()); - - cleanup(); - return Finished{}; -} - - void Goal::trace(std::string_view s) { debug("%1%: %2%", name, s); |