diff options
author | nharmata <nharmata@google.com> | 2017-05-18 22:03:40 +0200 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2017-05-19 15:08:11 +0200 |
commit | 90b09a677bbe523458e5a15975a5395d900ed98e (patch) | |
tree | 8564b3f4e94a05bc9f834d89ebb5206fdf85d66a /src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java | |
parent | 6c89a59badc066ddb662b67530254a43cdda7586 (diff) |
Make the number of legacy globbing threads configurable. PackageFactory's hardcoded default of 100 isn't a good choice for all PackageLoader users.
RELNOTES: None
PiperOrigin-RevId: 156468439
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java index d0b771dc31..634faaecfa 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java @@ -112,6 +112,7 @@ public abstract class AbstractPackageLoader implements PackageLoader { new AtomicReference<>(ImmutableSet.<PackageIdentifier>of()); protected final CachingPackageLocator packageManager; protected final BlazeDirectories directories; + private final int legacyGlobbingThreads; /** Abstract base class of a builder for {@link PackageLoader} instances. */ public abstract static class Builder { @@ -121,6 +122,7 @@ public abstract class AbstractPackageLoader implements PackageLoader { protected ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions = ImmutableMap.of(); protected ImmutableList<PrecomputedValue.Injected> extraPrecomputedValues = ImmutableList.of(); protected String defaultsPackageContents = getDefaultDefaulsPackageContents(); + protected int legacyGlobbingThreads = 1; protected Builder(Path workspaceDir) { this.workspaceDir = workspaceDir; @@ -153,6 +155,11 @@ public abstract class AbstractPackageLoader implements PackageLoader { return this; } + public Builder setLegacyGlobbingThreads(int numThreads) { + this.legacyGlobbingThreads = numThreads; + return this; + } + public abstract PackageLoader build(); protected abstract RuleClassProvider getDefaultRuleClassProvider(); @@ -168,6 +175,7 @@ public abstract class AbstractPackageLoader implements PackageLoader { this.reporter = builder.reporter; this.extraSkyFunctions = builder.extraSkyFunctions; this.pkgLocatorRef = new AtomicReference<>(pkgLocator); + this.legacyGlobbingThreads = builder.legacyGlobbingThreads; // The 'installBase' and 'outputBase' directories won't be meaningfully used by // WorkspaceFileFunction, so we pass in a dummy Path. @@ -285,6 +293,7 @@ public abstract class AbstractPackageLoader implements PackageLoader { getEnvironmentExtensions(), getName(), Package.Builder.DefaultHelper.INSTANCE); + pkgFactory.setGlobbingThreads(legacyGlobbingThreads); ImmutableMap.Builder<SkyFunctionName, SkyFunction> builder = ImmutableMap.builder(); builder .put(SkyFunctions.PRECOMPUTED, new PrecomputedFunction()) |