libstore: clear derivation build activities when done
without this derivations do not show as completely processed in the
internal-json logs (or the newer multiline output). the former also
breaks external tools like nix-output-monitor which, like multiline
output, grow vertically until at least some goals are finally freed
Change-Id: I55758daf526ba29ae15fb82e0d88da8afb45bf5c
This commit is contained in:
parent
5ce1d8463a
commit
343aca3a27
|
@ -127,7 +127,11 @@ Goal::WorkResult DerivationGoal::timedOut(Error && ex)
|
||||||
|
|
||||||
kj::Promise<Result<Goal::WorkResult>> DerivationGoal::workImpl() noexcept
|
kj::Promise<Result<Goal::WorkResult>> DerivationGoal::workImpl() noexcept
|
||||||
{
|
{
|
||||||
return useDerivation ? getDerivation() : haveDerivation();
|
return (useDerivation ? getDerivation() : haveDerivation()).attach(kj::defer([this] {
|
||||||
|
act.reset();
|
||||||
|
actLock.reset();
|
||||||
|
builderActivities.clear();
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DerivationGoal::addWantedOutputs(const OutputsSpec & outputs)
|
bool DerivationGoal::addWantedOutputs(const OutputsSpec & outputs)
|
||||||
|
|
Loading…
Reference in a new issue