LocalStore::verifyPath
: Try to clarify data flow with more scopes
It was initially unclear to me which of these are temporary state for the verify paths computation, and which of these are the results of that computation to be used in the rest of the function. Now, it is clear, and enforced.
This commit is contained in:
parent
2a5f5fbb17
commit
6525265f46
1 changed files with 16 additions and 13 deletions
|
@ -1499,6 +1499,9 @@ bool LocalStore::verifyStore(bool checkContents, RepairFlag repair)
|
||||||
auto fdGCLock = openGCLock();
|
auto fdGCLock = openGCLock();
|
||||||
FdLock gcLock(fdGCLock.get(), ltRead, true, "waiting for the big garbage collector lock...");
|
FdLock gcLock(fdGCLock.get(), ltRead, true, "waiting for the big garbage collector lock...");
|
||||||
|
|
||||||
|
StorePathSet validPaths;
|
||||||
|
|
||||||
|
{
|
||||||
StorePathSet store;
|
StorePathSet store;
|
||||||
for (auto & i : readDirectory(realStoreDir)) {
|
for (auto & i : readDirectory(realStoreDir)) {
|
||||||
try {
|
try {
|
||||||
|
@ -1509,11 +1512,11 @@ bool LocalStore::verifyStore(bool checkContents, RepairFlag repair)
|
||||||
/* Check whether all valid paths actually exist. */
|
/* Check whether all valid paths actually exist. */
|
||||||
printInfo("checking path existence...");
|
printInfo("checking path existence...");
|
||||||
|
|
||||||
StorePathSet validPaths;
|
|
||||||
StorePathSet done;
|
StorePathSet done;
|
||||||
|
|
||||||
for (auto & i : queryAllValidPaths())
|
for (auto & i : queryAllValidPaths())
|
||||||
verifyPath(i, store, done, validPaths, repair, errors);
|
verifyPath(i, store, done, validPaths, repair, errors);
|
||||||
|
}
|
||||||
|
|
||||||
/* Optionally, check the content hashes (slow). */
|
/* Optionally, check the content hashes (slow). */
|
||||||
if (checkContents) {
|
if (checkContents) {
|
||||||
|
|
Loading…
Reference in a new issue