Pool local store connections

This commit is contained in:
Eelco Dolstra
2016-02-20 00:04:08 +01:00
parent 1cefd6cac8
commit 88a05763cc
6 changed files with 38 additions and 17 deletions

View File

@@ -234,11 +234,11 @@ void BinaryCacheStore::querySubstitutablePathInfos(const PathSet & paths,
auto localStore = storeFactory();
for (auto & storePath : paths) {
if (!localStore->isValidPath(storePath)) {
if (!(*localStore)->isValidPath(storePath)) {
left.insert(storePath);
continue;
}
ValidPathInfo info = localStore->queryPathInfo(storePath);
ValidPathInfo info = (*localStore)->queryPathInfo(storePath);
SubstitutablePathInfo sub;
sub.references = info.references;
sub.downloadSize = 0;
@@ -246,7 +246,7 @@ void BinaryCacheStore::querySubstitutablePathInfos(const PathSet & paths,
infos.emplace(storePath, sub);
}
localStore->querySubstitutablePathInfos(left, infos);
//(*localStore)->querySubstitutablePathInfos(left, infos);
}
void BinaryCacheStore::buildPaths(const PathSet & paths, BuildMode buildMode)
@@ -258,12 +258,12 @@ void BinaryCacheStore::buildPaths(const PathSet & paths, BuildMode buildMode)
if (isValidPath(storePath)) continue;
localStore->addTempRoot(storePath);
(*localStore)->addTempRoot(storePath);
if (!localStore->isValidPath(storePath))
localStore->ensurePath(storePath);
if (!(*localStore)->isValidPath(storePath))
(*localStore)->ensurePath(storePath);
ValidPathInfo info = localStore->queryPathInfo(storePath);
ValidPathInfo info = (*localStore)->queryPathInfo(storePath);
for (auto & ref : info.references)
if (ref != storePath)