aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2010-08-24 11:45:44 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2010-08-24 11:45:44 +0000
commitf58f51f38007f8bfb1089c3b4c88b6e66da15f39 (patch)
tree1fd756e728b34e3c28ecbe4fbdf9c5a5170950ab
parent955d11aae738f7f9c56c51e8ab2eabdf8732aab1 (diff)
* Handle the unlikely case where a derivation has no dependencies at
all.
-rw-r--r--src/libstore/build.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 6f0276244..5617eccf1 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -887,7 +887,10 @@ void DerivationGoal::outputsSubstituted()
foreach (PathSet::iterator, i, drv.inputSrcs)
addWaitee(worker.makeSubstitutionGoal(*i));
- state = &DerivationGoal::inputsRealised;
+ if (waitees.empty()) /* to prevent hang (no wake-up event) */
+ inputsRealised();
+ else
+ state = &DerivationGoal::inputsRealised;
}