about summary refs log tree commit diff
path: root/src/libstore/gc.hh
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-02-01T15·05+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-02-01T15·05+0000
commit65b6c8ab4c7832abdad46a29ce2ef18d289b2471 (patch)
tree3038d7ed1f60efdf2e2dad43cfec93023d7c699f /src/libstore/gc.hh
parent630ae0c9d7f65a2d6bef85a5194b4d704e54eded (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.hh24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/libstore/gc.hh b/src/libstore/gc.hh
index e3da4505d5dd..b6a367c4b330 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