forked from lix-project/hydra
hydra-queue-runner: Fix assertion failure
This commit is contained in:
parent
d744362e4a
commit
90a08db241
|
@ -863,8 +863,8 @@ void State::dispatcher()
|
||||||
|
|
||||||
do {
|
do {
|
||||||
/* Copy the currentJobs field of each machine. This is
|
/* Copy the currentJobs field of each machine. This is
|
||||||
necessary to ensure that the sort comparator below is a
|
necessary to ensure that the sort comparator below is
|
||||||
ordering. std::sort() can segfault if it isn't. */
|
an ordering. std::sort() can segfault if it isn't. */
|
||||||
struct MachineInfo
|
struct MachineInfo
|
||||||
{
|
{
|
||||||
Machine::ptr machine;
|
Machine::ptr machine;
|
||||||
|
@ -1203,7 +1203,10 @@ bool State::doBuildStep(std::shared_ptr<StoreAPI> store, Step::ptr step,
|
||||||
{
|
{
|
||||||
auto rdep_(rdep->state.lock());
|
auto rdep_(rdep->state.lock());
|
||||||
rdep_->deps.erase(step);
|
rdep_->deps.erase(step);
|
||||||
if (rdep_->deps.empty()) runnable = true;
|
/* Note: if the step has not finished
|
||||||
|
initialisation yet, it will be made runnable in
|
||||||
|
createStep(), if appropriate. */
|
||||||
|
if (rdep_->deps.empty() && rdep->created) runnable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runnable) makeRunnable(rdep);
|
if (runnable) makeRunnable(rdep);
|
||||||
|
|
Loading…
Reference in a new issue