forked from lix-project/hydra
Fix finishing steps that are not top-level of any build
This commit is contained in:
parent
9cdbff2fdf
commit
89b629eeb1
|
@ -1119,7 +1119,8 @@ bool State::doBuildStep(std::shared_ptr<StoreAPI> store, Step::ptr step,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If there are no builds left to update in the DB,
|
/* If there are no builds left to update in the DB,
|
||||||
then we're done. Delete the step from
|
then we're done (except for calling
|
||||||
|
finishBuildStep()). Delete the step from
|
||||||
‘steps’. Since we've been holding the ‘steps’ lock,
|
‘steps’. Since we've been holding the ‘steps’ lock,
|
||||||
no new referrers can have been added in the
|
no new referrers can have been added in the
|
||||||
meantime or be added afterwards. */
|
meantime or be added afterwards. */
|
||||||
|
@ -1127,7 +1128,6 @@ bool State::doBuildStep(std::shared_ptr<StoreAPI> store, Step::ptr step,
|
||||||
printMsg(lvlDebug, format("finishing build step ‘%1%’") % step->drvPath);
|
printMsg(lvlDebug, format("finishing build step ‘%1%’") % step->drvPath);
|
||||||
nrStepsDone++;
|
nrStepsDone++;
|
||||||
steps_->erase(step->drvPath);
|
steps_->erase(step->drvPath);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1144,6 +1144,8 @@ bool State::doBuildStep(std::shared_ptr<StoreAPI> store, Step::ptr step,
|
||||||
txn.commit();
|
txn.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (direct.empty()) break;
|
||||||
|
|
||||||
/* Remove the direct dependencies from ‘builds’. This will
|
/* Remove the direct dependencies from ‘builds’. This will
|
||||||
cause them to be destroyed. */
|
cause them to be destroyed. */
|
||||||
for (auto & b : direct) {
|
for (auto & b : direct) {
|
||||||
|
|
Loading…
Reference in a new issue