diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-02-01 15:05:32 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-02-01 15:05:32 +0000 |
commit | 65b6c8ab4c7832abdad46a29ce2ef18d289b2471 (patch) | |
tree | 3038d7ed1f60efdf2e2dad43cfec93023d7c699f /src/libstore/gc.hh | |
parent | 630ae0c9d7f65a2d6bef85a5194b4d704e54eded (diff) |
* Move root finding from `nix-collect-garbage' to `nix-store --gc'.
This was necessary becase root finding must be done after
acquisition of the global GC lock.
This makes `nix-collect-garbage' obsolete; it is now just a wrapper
around `nix-store --gc'.
* Automatically remove stale GC roots (i.e., indirect GC roots that
point to non-existent paths).
Diffstat (limited to 'src/libstore/gc.hh')
-rw-r--r-- | src/libstore/gc.hh | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/libstore/gc.hh b/src/libstore/gc.hh index e3da4505d..b6a367c4b 100644 --- a/src/libstore/gc.hh +++ b/src/libstore/gc.hh @@ -5,15 +5,21 @@ /* Garbage collector operation. */ -typedef enum { gcReturnLive, gcReturnDead, gcDeleteDead } GCAction; - -/* If `action' is set to `soReturnLive', return the set of paths - reachable from (i.e. in the closure of) the specified roots. If - `action' is `soReturnDead', return the set of paths not reachable - from the roots. If `action' is `soDeleteDead', actually delete the - latter set. */ -void collectGarbage(const PathSet & roots, GCAction action, - PathSet & result); +typedef enum { + gcReturnRoots, + gcReturnLive, + gcReturnDead, + gcDeleteDead, +} GCAction; + +/* If `action' is set to `gcReturnRoots', find and return the set of + roots for the garbage collector. These are the store paths + symlinked to in the `gcroots' directory. If `action' is + `gcReturnLive', return the set of paths reachable from (i.e. in the + closure of) the roots. If `action' is `gcReturnDead', return the + set of paths not reachable from the roots. If `action' is + `gcDeleteDead', actually delete the latter set. */ +void collectGarbage(GCAction action, PathSet & result); /* Register a temporary GC root. This root will automatically disappear when this process exits. WARNING: this function should |