aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
diff options
context:
space:
mode:
authorGravatar nharmata <nharmata@google.com>2017-05-18 22:03:40 +0200
committerGravatar Dmitry Lomov <dslomov@google.com>2017-05-19 15:08:11 +0200
commit90b09a677bbe523458e5a15975a5395d900ed98e (patch)
tree8564b3f4e94a05bc9f834d89ebb5206fdf85d66a /src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
parent6c89a59badc066ddb662b67530254a43cdda7586 (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.java9
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())