prim_import(): prefetch substitute info in parallel using queryMissing()

This commit is contained in:
Eelco Dolstra 2012-07-09 09:59:34 -04:00
parent 425cc612ad
commit 98a423b75a
1 changed files with 6 additions and 0 deletions

View File

@ -51,6 +51,12 @@ static void prim_import(EvalState & state, Value * * args, Value & v)
% path % ctx);
if (isDerivation(ctx))
try {
/* For performance, prefetch all substitute info. */
PathSet willBuild, willSubstitute, unknown;
unsigned long long downloadSize, narSize;
queryMissing(*store, singleton<PathSet>(ctx),
willBuild, willSubstitute, unknown, downloadSize, narSize);
/* !!! If using a substitute, we only need to fetch
the selected output of this derivation. */
store->buildPaths(singleton<PathSet>(ctx));