about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2010-08-24T11·45+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2010-08-24T11·45+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 6f02762442a1..5617eccf1fec 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;
 }