aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/store.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-02-01 12:36:25 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-02-01 12:36:25 +0000
commitdcc37c236c66ba463bd61fec23d046485d8a412f (patch)
treeb1a34feaf2a9a0ca0e0bad89c1671289de9e19d2 /src/libstore/store.cc
parenta6b65fd5e107416588a6572a88518d8816abcb12 (diff)
* nix-store, nix-instantiate: added an option `--add-root' to
immediately add the result as a permanent GC root. This is the only way to prevent a race with the garbage collector. For instance, the old style ln -s $(nix-store -r $(nix-instantiate foo.nix)) \ /nix/var/nix/gcroots/result has two time windows in which the garbage collector can interfere (by GC'ing the derivation and the output, respectively). On the other hand, nix-store --add-root /nix/var/nix/gcroots/result -r \ $(nix-instantiate --add-root /nix/var/nix/gcroots/drv \ foo.nix) is safe. * nix-build: use `--add-root' to prevent GC races.
Diffstat (limited to 'src/libstore/store.cc')
-rw-r--r--src/libstore/store.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libstore/store.cc b/src/libstore/store.cc
index c7b84e7c6..b915fce24 100644
--- a/src/libstore/store.cc
+++ b/src/libstore/store.cc
@@ -168,7 +168,7 @@ void copyPath(const Path & src, const Path & dst)
}
-static bool isInStore(const Path & path)
+bool isStorePath(const Path & path)
{
return path[0] == '/'
&& path.compare(0, nixStore.size(), nixStore) == 0
@@ -180,7 +180,7 @@ static bool isInStore(const Path & path)
void assertStorePath(const Path & path)
{
- if (!isInStore(path))
+ if (!isStorePath(path))
throw Error(format("path `%1%' is not in the Nix store") % path);
}
@@ -579,7 +579,7 @@ void verifyStore()
if (!pathExists(path)) {
printMsg(lvlError, format("path `%1%' disappeared") % path);
invalidatePath(path, txn);
- } else if (!isInStore(path)) {
+ } else if (!isStorePath(path)) {
printMsg(lvlError, format("path `%1%' is not in the Nix store") % path);
invalidatePath(path, txn);
} else