* Move addTempRoot() to the store API, and add another function

syncWithGC() to allow clients to register GC roots without needing
  write access to the global roots directory or the GC lock.
This commit is contained in:
Eelco Dolstra 2006-12-02 16:41:36 +00:00
parent 30bf547f4f
commit e25fad691a
11 changed files with 81 additions and 17 deletions

View file

@ -26,12 +26,6 @@ typedef enum {
void collectGarbage(GCAction action, const PathSet & pathsToDelete,
bool ignoreLiveness, PathSet & result, unsigned long long & bytesFreed);
/* Register a temporary GC root. This root will automatically
disappear when this process exits. WARNING: this function should
not be called inside a BDB transaction, otherwise we can
deadlock. */
void addTempRoot(const Path & path);
/* Remove the temporary roots file for this process. Any temporary
root becomes garbage after this point unless it has been registered
as a (permanent) root. */