* Fix a huge gaping hole in nix-env w.r.t. the garbage collector.

Nix-env failed to call addPermRoot(), which is necessary to safely
  add a new root.  So if nix-env started after and finished before the
  garbage collector, the user environment (plus all other new stuff)
  it built might be garbage collected, leading to a dangling symlink
  chain in ~/.nix-profile...

* Be more explicit if we block on the GC lock ("waiting for the big
  garbage collector lock...").

* Don't loop trying to create a new generation.  It's not necessary
  anymore since profiles are locked nowadays.
This commit is contained in:
Eelco Dolstra 2006-09-14 22:30:33 +00:00
parent f00bc4c94c
commit 5c38c863bd
3 changed files with 26 additions and 22 deletions

View file

@ -39,7 +39,7 @@ void removeTempRoots();
/* Register a permanent GC root. */
Path addPermRoot(const Path & storePath, const Path & gcRoot,
bool indirect);
bool indirect, bool allowOutsideRootsDir = false);
}