about summary refs log tree commit diff
path: root/src/store.hh
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2003-10-10T14·46+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2003-10-10T14·46+0000
commitd3d5e77810cca11cca95bbb6f0f5e15d23f31eea (patch)
tree09693dd9f6711576a587a37a20194cd82f75a45d /src/store.hh
parent1eb4da156cca1b1981ab1f60bb9797ed1e93101a (diff)
* Reverse mappings for the successor and substitute mappings.
Diffstat (limited to 'src/store.hh')
-rw-r--r--src/store.hh10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/store.hh b/src/store.hh
index 69de8247860f..7b32a1a731e9 100644
--- a/src/store.hh
+++ b/src/store.hh
@@ -12,6 +12,16 @@ using namespace std;
 /* Copy a path recursively. */
 void copyPath(const Path & src, const Path & dst);
 
+/* Register a successor.  This function accepts a transaction handle
+   so that it can be enclosed in an atomic operation with calls to
+   registerValidPath().  This must be atomic, since if we register a
+   successor for a derivation without registering the paths built in
+   the derivation, we have a successor with dangling pointers, and if
+   we do it in reverse order, we can get an obstructed build (since to
+   rebuild the successor, the outputs paths must not exist). */
+void registerSuccessor(const Transaction & txn,
+    const Path & path1, const Path & path2);
+
 /* Register a substitute. */
 void registerSubstitute(const Path & srcPath, const Path & subPath);