Allow modules to register a SkyKeyStateReceiver to observe the start of each SkyKey evaluation, when a SkyKey is evaluated, and the start/end of work on another (non-Skyframe) thread that "belongs" to that SkyKey, like non-Skyframe globbing within PackageFunction.
PiperOrigin-RevId: 382812462
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
index 8264de7..2f176c8 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
@@ -76,6 +76,7 @@
private final ArtifactPathResolver pathResolver;
private final NestedSetExpander nestedSetExpander;
private final FilesystemCalls syscalls;
+ private final ThreadStateReceiver threadStateReceiverForMetrics;
private ActionExecutionContext(
Executor executor,
@@ -94,7 +95,8 @@
@Nullable FileSystem actionFileSystem,
@Nullable Object skyframeDepsResult,
NestedSetExpander nestedSetExpander,
- FilesystemCalls syscalls) {
+ FilesystemCalls syscalls,
+ ThreadStateReceiver threadStateReceiverForMetrics) {
this.actionInputFileCache = actionInputFileCache;
this.actionInputPrefetcher = actionInputPrefetcher;
this.actionKeyContext = actionKeyContext;
@@ -110,6 +112,7 @@
this.env = env;
this.actionFileSystem = actionFileSystem;
this.skyframeDepsResult = skyframeDepsResult;
+ this.threadStateReceiverForMetrics = threadStateReceiverForMetrics;
this.pathResolver = ArtifactPathResolver.createPathResolver(actionFileSystem,
// executor is only ever null in testing.
executor == null ? null : executor.getExecRoot());
@@ -133,7 +136,8 @@
@Nullable FileSystem actionFileSystem,
@Nullable Object skyframeDepsResult,
NestedSetExpander nestedSetExpander,
- FilesystemCalls syscalls) {
+ FilesystemCalls syscalls,
+ ThreadStateReceiver threadStateReceiverForMetrics) {
this(
executor,
actionInputFileCache,
@@ -151,7 +155,8 @@
actionFileSystem,
skyframeDepsResult,
nestedSetExpander,
- syscalls);
+ syscalls,
+ threadStateReceiverForMetrics);
}
public static ActionExecutionContext forInputDiscovery(
@@ -168,7 +173,8 @@
Environment env,
@Nullable FileSystem actionFileSystem,
NestedSetExpander nestedSetExpander,
- FilesystemCalls syscalls) {
+ FilesystemCalls syscalls,
+ ThreadStateReceiver threadStateReceiverForMetrics) {
return new ActionExecutionContext(
executor,
actionInputFileCache,
@@ -186,7 +192,8 @@
actionFileSystem,
/*skyframeDepsResult=*/ null,
nestedSetExpander,
- syscalls);
+ syscalls,
+ threadStateReceiverForMetrics);
}
public ActionInputPrefetcher getActionInputPrefetcher() {
@@ -370,6 +377,10 @@
return syscalls;
}
+ public ThreadStateReceiver getThreadStateReceiverForMetrics() {
+ return threadStateReceiverForMetrics;
+ }
+
@Override
public void close() throws IOException {
// Ensure that we close both fileOutErr and actionFileSystem even if one throws.
@@ -404,7 +415,8 @@
actionFileSystem,
skyframeDepsResult,
nestedSetExpander,
- syscalls);
+ syscalls,
+ threadStateReceiverForMetrics);
}
/** Allows us to create a new context that overrides the MetadataHandler with another one. */
@@ -426,7 +438,8 @@
actionFileSystem,
skyframeDepsResult,
nestedSetExpander,
- syscalls);
+ syscalls,
+ threadStateReceiverForMetrics);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/actions/BUILD b/src/main/java/com/google/devtools/build/lib/actions/BUILD
index 7ca98f1..99ecb57 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/actions/BUILD
@@ -56,6 +56,7 @@
"ResourceSet.java",
"PackageRootResolver.java",
"PackageRoots.java",
+ "ThreadStateReceiver.java",
"cache/MetadataDigestUtils.java",
],
),
@@ -71,6 +72,7 @@
":localhost_capacity",
":middleman_type",
":package_roots",
+ ":thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis/platform",
"//src/main/java/com/google/devtools/build/lib/bugreport",
"//src/main/java/com/google/devtools/build/lib/buildeventstream",
@@ -325,3 +327,12 @@
"//third_party:jsr305",
],
)
+
+java_library(
+ name = "thread_state_receiver",
+ srcs = ["ThreadStateReceiver.java"],
+ deps = [
+ "//src/main/java/com/google/devtools/build/lib/profiler",
+ "//third_party:jsr305",
+ ],
+)
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ThreadStateReceiver.java b/src/main/java/com/google/devtools/build/lib/actions/ThreadStateReceiver.java
new file mode 100644
index 0000000..72965fd
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/actions/ThreadStateReceiver.java
@@ -0,0 +1,30 @@
+// Copyright 2021 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.actions;
+
+import com.google.devtools.build.lib.profiler.SilentCloseable;
+import javax.annotation.CheckReturnValue;
+
+/**
+ * Interface to be used by threads doing work that should be tracked. {@link #started} is called at
+ * the beginning of the thread's work. When not tracking work, the {@link #NULL_INSTANCE} should be
+ * used to avoid memory and process overhead.
+ */
+public interface ThreadStateReceiver {
+ ThreadStateReceiver NULL_INSTANCE = () -> () -> {};
+
+ @CheckReturnValue
+ SilentCloseable started();
+}
diff --git a/src/main/java/com/google/devtools/build/lib/includescanning/LegacyIncludeScanner.java b/src/main/java/com/google/devtools/build/lib/includescanning/LegacyIncludeScanner.java
index 1aeb9c6..60411f8 100644
--- a/src/main/java/com/google/devtools/build/lib/includescanning/LegacyIncludeScanner.java
+++ b/src/main/java/com/google/devtools/build/lib/includescanning/LegacyIncludeScanner.java
@@ -34,6 +34,7 @@
import com.google.devtools.build.lib.includescanning.IncludeParser.Hints;
import com.google.devtools.build.lib.includescanning.IncludeParser.Inclusion;
import com.google.devtools.build.lib.includescanning.IncludeParser.Inclusion.Kind;
+import com.google.devtools.build.lib.profiler.SilentCloseable;
import com.google.devtools.build.lib.rules.cpp.IncludeScanner;
import com.google.devtools.build.lib.vfs.IORuntimeException;
import com.google.devtools.build.lib.vfs.Path;
@@ -758,8 +759,6 @@
* inclusions
* @param visited the set to receive the files that are transitively included by {@code source}
*/
- // TODO(b/175294870): Clean up.
- @SuppressWarnings("LogAndThrow") // Temporary debugging.
private void process(
final Artifact source, int contextPathPos, Kind contextKind, Set<Artifact> visited)
throws IOException, ExecException, InterruptedException {
@@ -830,7 +829,8 @@
} else {
super.execute(
() -> {
- try {
+ try (SilentCloseable ignored =
+ actionExecutionContext.getThreadStateReceiverForMetrics().started()) {
process(source, contextPathPos, contextKind, visited);
} catch (IOException e) {
throw new IORuntimeException(e);
@@ -925,7 +925,8 @@
}
super.execute(
() -> {
- try {
+ try (SilentCloseable ignored =
+ actionExecutionContext.getThreadStateReceiverForMetrics().started()) {
processBulkAsync(sources, alsoVisited);
} catch (IOException e) {
throw new IORuntimeException(e);
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BUILD b/src/main/java/com/google/devtools/build/lib/packages/BUILD
index a988931..70efa11 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/packages/BUILD
@@ -23,6 +23,7 @@
":exec_group",
"//src/main/java/com/google/devtools/build/docgen/annot",
"//src/main/java/com/google/devtools/build/lib/actions:execution_requirements",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:config/config_matching_provider",
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/configuration_transition",
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/no_transition",
diff --git a/src/main/java/com/google/devtools/build/lib/packages/GlobCache.java b/src/main/java/com/google/devtools/build/lib/packages/GlobCache.java
index b289dcb..33c882d 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/GlobCache.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/GlobCache.java
@@ -20,9 +20,11 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.google.common.util.concurrent.SettableFuture;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.concurrent.ThreadSafety;
import com.google.devtools.build.lib.packages.Globber.BadGlobException;
+import com.google.devtools.build.lib.profiler.SilentCloseable;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -101,10 +103,19 @@
final CachingPackageLocator locator,
AtomicReference<? extends UnixGlob.FilesystemCalls> syscalls,
Executor globExecutor,
- int maxDirectoriesToEagerlyVisit) {
+ int maxDirectoriesToEagerlyVisit,
+ ThreadStateReceiver threadStateReceiverForMetrics) {
this.packageDirectory = Preconditions.checkNotNull(packageDirectory);
this.packageId = Preconditions.checkNotNull(packageId);
- this.globExecutor = Preconditions.checkNotNull(globExecutor);
+ Preconditions.checkNotNull(globExecutor);
+ this.globExecutor =
+ command ->
+ globExecutor.execute(
+ () -> {
+ try (SilentCloseable ignored = threadStateReceiverForMetrics.started()) {
+ command.run();
+ }
+ });
this.syscalls = syscalls == null ? new AtomicReference<>(UnixGlob.DEFAULT_SYSCALLS) : syscalls;
this.maxDirectoriesToEagerlyVisit = maxDirectoriesToEagerlyVisit;
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index d2750e1..ea09f35 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -21,6 +21,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import com.google.common.flogger.GoogleLogger;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.cmdline.RepositoryName;
@@ -470,7 +471,8 @@
Path packageDirectory,
PackageIdentifier packageId,
ImmutableSet<PathFragment> ignoredGlobPrefixes,
- CachingPackageLocator locator) {
+ CachingPackageLocator locator,
+ ThreadStateReceiver threadStateReceiverForMetrics) {
return new NonSkyframeGlobber(
new GlobCache(
packageDirectory,
@@ -479,7 +481,8 @@
locator,
syscalls,
executor,
- maxDirectoriesToEagerlyVisitInGlobbing));
+ maxDirectoriesToEagerlyVisitInGlobbing,
+ threadStateReceiverForMetrics));
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java b/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java
index 0a46692..d4d1ed8 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java
@@ -53,6 +53,7 @@
ImmutableList.builder();
private AllocationTracker allocationTracker;
private ManagedDirectoriesKnowledge managedDirectoriesKnowledge;
+ private SkyframeExecutor.SkyKeyStateReceiver skyKeyStateReceiver = null;
WorkspaceBuilder(BlazeDirectories directories, BinTools binTools) {
this.directories = directories;
@@ -79,6 +80,9 @@
skyFunctions.build(),
customDirtinessCheckers.build(),
managedDirectoriesKnowledge,
+ skyKeyStateReceiver == null
+ ? SkyframeExecutor.SkyKeyStateReceiver.NULL_INSTANCE
+ : skyKeyStateReceiver,
runtime.getBugReporter());
return new BlazeWorkspace(
runtime,
@@ -159,4 +163,15 @@
this.managedDirectoriesKnowledge = managedDirectoriesKnowledge;
return this;
}
+
+ public WorkspaceBuilder setSkyKeyStateReceiver(
+ SkyframeExecutor.SkyKeyStateReceiver skyKeyStateReceiver) {
+ Preconditions.checkState(
+ this.skyKeyStateReceiver == null,
+ "Multiple evaluatedSkyKeyReceiver: %s %s",
+ this.skyKeyStateReceiver,
+ skyKeyStateReceiver);
+ this.skyKeyStateReceiver = skyKeyStateReceiver;
+ return this;
+ }
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectValueKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectValueKey.java
index fddca3f..f97e08d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectValueKey.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectValueKey.java
@@ -85,16 +85,35 @@
.build());
}
+ /** Common superclass for {@link AspectKey} and {@link TopLevelAspectsKey}. */
+ public abstract static class AspectBaseKey implements ActionLookupKey {
+ private final ConfiguredTargetKey baseConfiguredTargetKey;
+ private final int hashCode;
+
+ private AspectBaseKey(ConfiguredTargetKey baseConfiguredTargetKey, int hashCode) {
+ this.baseConfiguredTargetKey = baseConfiguredTargetKey;
+ this.hashCode = hashCode;
+ }
+
+ /** Returns the key for the base configured target for this aspect. */
+ public final ConfiguredTargetKey getBaseConfiguredTargetKey() {
+ return baseConfiguredTargetKey;
+ }
+
+ @Override
+ public final int hashCode() {
+ return hashCode;
+ }
+ }
+
// Specific subtypes of aspect keys.
/** Represents an aspect applied to a particular target. */
@AutoCodec
- public static final class AspectKey implements ActionLookupKey {
- private final ConfiguredTargetKey baseConfiguredTargetKey;
+ public static final class AspectKey extends AspectBaseKey {
private final ImmutableList<AspectKey> baseKeys;
@Nullable private final BuildConfigurationValue.Key aspectConfigurationKey;
private final AspectDescriptor aspectDescriptor;
- private final int hashCode;
private AspectKey(
ConfiguredTargetKey baseConfiguredTargetKey,
@@ -102,11 +121,10 @@
AspectDescriptor aspectDescriptor,
@Nullable BuildConfigurationValue.Key aspectConfigurationKey,
int hashCode) {
+ super(baseConfiguredTargetKey, hashCode);
this.baseKeys = baseKeys;
this.aspectConfigurationKey = aspectConfigurationKey;
- this.baseConfiguredTargetKey = baseConfiguredTargetKey;
this.aspectDescriptor = aspectDescriptor;
- this.hashCode = hashCode;
}
@AutoCodec.VisibleForSerialization
@@ -143,7 +161,7 @@
@Override
public Label getLabel() {
- return baseConfiguredTargetKey.getLabel();
+ return getBaseConfiguredTargetKey().getLabel();
}
public AspectClass getAspectClass() {
@@ -204,16 +222,6 @@
return aspectConfigurationKey;
}
- /** Returns the key for the base configured target for this aspect. */
- public ConfiguredTargetKey getBaseConfiguredTargetKey() {
- return baseConfiguredTargetKey;
- }
-
- @Override
- public int hashCode() {
- return hashCode;
- }
-
@Override
public boolean equals(Object other) {
if (this == other) {
@@ -223,10 +231,10 @@
return false;
}
AspectKey that = (AspectKey) other;
- return hashCode == that.hashCode
+ return hashCode() == that.hashCode()
&& Objects.equal(baseKeys, that.baseKeys)
&& Objects.equal(aspectConfigurationKey, that.aspectConfigurationKey)
- && Objects.equal(baseConfiguredTargetKey, that.baseConfiguredTargetKey)
+ && Objects.equal(getBaseConfiguredTargetKey(), that.getBaseConfiguredTargetKey())
&& Objects.equal(aspectDescriptor, that.aspectDescriptor);
}
@@ -249,7 +257,7 @@
+ " "
+ aspectConfigurationKey
+ " "
- + baseConfiguredTargetKey
+ + getBaseConfiguredTargetKey()
+ " "
+ aspectDescriptor.getParameters();
}
@@ -263,7 +271,7 @@
return createAspectKey(
ConfiguredTargetKey.builder()
.setLabel(label)
- .setConfigurationKey(baseConfiguredTargetKey.getConfigurationKey())
+ .setConfigurationKey(getBaseConfiguredTargetKey().getConfigurationKey())
.build(),
newBaseKeys.build(),
aspectDescriptor,
@@ -273,11 +281,9 @@
/** The key for top level aspects specified by --aspects option on a top level target. */
@AutoCodec
- public static final class TopLevelAspectsKey implements ActionLookupKey {
+ public static final class TopLevelAspectsKey extends AspectBaseKey {
private final ImmutableList<AspectClass> topLevelAspectsClasses;
private final Label targetLabel;
- private final ConfiguredTargetKey baseConfiguredTargetKey;
- private final int hashCode;
@AutoCodec.Instantiator
@AutoCodec.VisibleForSerialization
@@ -298,10 +304,9 @@
Label targetLabel,
ConfiguredTargetKey baseConfiguredTargetKey,
int hashCode) {
+ super(baseConfiguredTargetKey, hashCode);
this.topLevelAspectsClasses = topLevelAspectsClasses;
this.targetLabel = targetLabel;
- this.baseConfiguredTargetKey = baseConfiguredTargetKey;
- this.hashCode = hashCode;
}
@Override
@@ -318,20 +323,11 @@
return targetLabel;
}
- ConfiguredTargetKey getBaseConfiguredTargetKey() {
- return baseConfiguredTargetKey;
- }
-
String getDescription() {
return topLevelAspectsClasses + " on " + getLabel();
}
@Override
- public int hashCode() {
- return hashCode;
- }
-
- @Override
public boolean equals(Object o) {
if (o == this) {
return true;
@@ -340,9 +336,9 @@
return false;
}
TopLevelAspectsKey that = (TopLevelAspectsKey) o;
- return hashCode == that.hashCode
+ return hashCode() == that.hashCode()
&& Objects.equal(targetLabel, that.targetLabel)
- && Objects.equal(baseConfiguredTargetKey, that.baseConfiguredTargetKey)
+ && Objects.equal(getBaseConfiguredTargetKey(), that.getBaseConfiguredTargetKey())
&& Objects.equal(topLevelAspectsClasses, that.topLevelAspectsClasses);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
index 8b1be8a..7ec0aed 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -229,6 +229,7 @@
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/actions:fileset_output_symlink",
"//src/main/java/com/google/devtools/build/lib/actions:package_roots",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/actionsketch:action_sketch",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/parameter_file_write_action",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
index fa646b7..c137ae0 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
@@ -83,7 +83,7 @@
}
@Nullable
- ToolchainContextKey getToolchainContextKey() {
+ public ToolchainContextKey getToolchainContextKey() {
return null;
}
@@ -166,7 +166,7 @@
}
@Override
- final ToolchainContextKey getToolchainContextKey() {
+ public final ToolchainContextKey getToolchainContextKey() {
return toolchainContextKey;
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
index e779a4d..63a2da6 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
@@ -28,6 +28,7 @@
import com.google.common.collect.Sets;
import com.google.common.flogger.GoogleLogger;
import com.google.devtools.build.lib.actions.FileValue;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.clock.BlazeClock;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.LabelConstants;
@@ -89,6 +90,7 @@
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Function;
import javax.annotation.Nullable;
import net.starlark.java.eval.EvalException;
import net.starlark.java.eval.Module;
@@ -119,6 +121,8 @@
private final IncrementalityIntent incrementalityIntent;
+ private final Function<SkyKey, ThreadStateReceiver> threadStateReceiverFactoryForMetrics;
+
/**
* CompiledBuildFile holds information extracted from the BUILD syntax tree before it was
* discarded, such as the compiled program, its glob literals, and its mapping from each function
@@ -178,7 +182,8 @@
@Nullable BzlLoadFunction bzlLoadFunctionForInlining,
@Nullable PackageProgressReceiver packageProgress,
ActionOnIOExceptionReadingBuildFile actionOnIOExceptionReadingBuildFile,
- IncrementalityIntent incrementalityIntent) {
+ IncrementalityIntent incrementalityIntent,
+ Function<SkyKey, ThreadStateReceiver> threadStateReceiverFactoryForMetrics) {
this.bzlLoadFunctionForInlining = bzlLoadFunctionForInlining;
this.packageFactory = packageFactory;
this.packageLocator = pkgLocator;
@@ -189,6 +194,7 @@
this.packageProgress = packageProgress;
this.actionOnIOExceptionReadingBuildFile = actionOnIOExceptionReadingBuildFile;
this.incrementalityIntent = incrementalityIntent;
+ this.threadStateReceiverFactoryForMetrics = threadStateReceiverFactoryForMetrics;
}
public void setBzlLoadFunctionForInliningForTesting(BzlLoadFunction bzlLoadFunctionForInlining) {
@@ -526,7 +532,8 @@
starlarkBuiltinsValue,
preludeLabel,
packageLookupValue.getRoot(),
- env);
+ env,
+ key);
if (packageCacheEntry == null) {
return null; // skyframe restart
}
@@ -1201,13 +1208,15 @@
PackageIdentifier packageId,
ImmutableSet<PathFragment> repositoryIgnoredPatterns,
Root packageRoot,
- SkyFunction.Environment env) {
+ Environment env,
+ SkyKey keyForMetrics) {
NonSkyframeGlobber nonSkyframeGlobber =
packageFactory.createNonSkyframeGlobber(
buildFilePath.getParentDirectory(),
packageId,
repositoryIgnoredPatterns,
- packageLocator);
+ packageLocator,
+ threadStateReceiverFactoryForMetrics.apply(keyForMetrics));
switch (incrementalityIntent) {
case INCREMENTAL:
return new SkyframeHybridGlobber(packageId, packageRoot, env, nonSkyframeGlobber);
@@ -1240,7 +1249,8 @@
StarlarkBuiltinsValue starlarkBuiltinsValue,
@Nullable Label preludeLabel,
Root packageRoot,
- Environment env)
+ Environment env,
+ SkyKey keyForMetrics)
throws InterruptedException, PackageFunctionException {
// TODO(adonovan): opt: evaluate splitting this part out as a separate Skyframe
@@ -1347,7 +1357,12 @@
if (compiled.ok()) {
GlobberWithSkyframeGlobDeps globber =
makeGlobber(
- buildFilePath.asPath(), packageId, repositoryIgnoredPatterns, packageRoot, env);
+ buildFilePath.asPath(),
+ packageId,
+ repositoryIgnoredPatterns,
+ packageRoot,
+ env,
+ keyForMetrics);
pkgBuilder.setGeneratorMap(compiled.generatorMap);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
index ffcf87e..c9df897 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
@@ -174,6 +174,7 @@
ExternalPackageHelper externalPackageHelper,
ActionOnIOExceptionReadingBuildFile actionOnIOExceptionReadingBuildFile,
@Nullable ManagedDirectoriesKnowledge managedDirectoriesKnowledge,
+ SkyKeyStateReceiver skyKeyStateReceiver,
BugReporter bugReporter) {
super(
skyframeExecutorConsumerOnInit,
@@ -195,6 +196,7 @@
new PackageProgressReceiver(),
new ConfiguredTargetProgressReceiver(),
managedDirectoriesKnowledge,
+ skyKeyStateReceiver,
bugReporter);
this.diffAwarenessManager = new DiffAwarenessManager(diffAwarenessFactories);
this.customDirtinessCheckers = customDirtinessCheckers;
@@ -1048,6 +1050,7 @@
private Consumer<SkyframeExecutor> skyframeExecutorConsumerOnInit = skyframeExecutor -> {};
private SkyFunction ignoredPackagePrefixesFunction;
private BugReporter bugReporter = BugReporter.defaultInstance();
+ private SkyKeyStateReceiver skyKeyStateReceiver = SkyKeyStateReceiver.NULL_INSTANCE;
private Builder() {}
@@ -1082,6 +1085,7 @@
externalPackageHelper,
actionOnIOExceptionReadingBuildFile,
managedDirectoriesKnowledge,
+ skyKeyStateReceiver,
bugReporter);
skyframeExecutor.init();
return skyframeExecutor;
@@ -1174,6 +1178,11 @@
return this;
}
+ public Builder setSkyKeyStateReceiver(SkyKeyStateReceiver skyKeyStateReceiver) {
+ this.skyKeyStateReceiver = Preconditions.checkNotNull(skyKeyStateReceiver);
+ return this;
+ }
+
public Builder setManagedDirectoriesKnowledge(
@Nullable ManagedDirectoriesKnowledge managedDirectoriesKnowledge) {
this.managedDirectoriesKnowledge = managedDirectoriesKnowledge;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java
index 42220a3..a838c29 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java
@@ -38,6 +38,7 @@
ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions,
Iterable<SkyValueDirtinessChecker> customDirtinessCheckers,
@Nullable ManagedDirectoriesKnowledge managedDirectoriesKnowledge,
+ SkyframeExecutor.SkyKeyStateReceiver skyKeyStateReceiver,
BugReporter bugReporter) {
return BazelSkyframeExecutorConstants.newBazelSkyframeExecutorBuilder()
.setPkgFactory(pkgFactory)
@@ -49,6 +50,7 @@
.setExtraSkyFunctions(extraSkyFunctions)
.setCustomDirtinessCheckers(customDirtinessCheckers)
.setManagedDirectoriesKnowledge(managedDirectoriesKnowledge)
+ .setSkyKeyStateReceiver(skyKeyStateReceiver)
.setBugReporter(bugReporter)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
index 7c9fd4e..3a4c3bc 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
@@ -66,6 +66,7 @@
import com.google.devtools.build.lib.actions.ScanningActionEvent;
import com.google.devtools.build.lib.actions.SpawnResult.MetadataLog;
import com.google.devtools.build.lib.actions.StoppedScanningActionEvent;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.UserExecException;
import com.google.devtools.build.lib.actions.cache.MetadataHandler;
import com.google.devtools.build.lib.actions.cache.MetadataInjector;
@@ -116,6 +117,7 @@
import java.util.SortedMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Function;
import java.util.function.Supplier;
import javax.annotation.Nullable;
@@ -148,6 +150,7 @@
private final MetadataConsumerForMetrics outputArtifactsSeen;
private final MetadataConsumerForMetrics outputArtifactsFromActionCache;
private final AtomicReference<FilesystemCalls> syscalls;
+ private final Function<SkyKey, ThreadStateReceiver> threadStateReceiverFactory;
private Reporter reporter;
private Map<String, String> clientEnv = ImmutableMap.of();
private Executor executorEngine;
@@ -220,7 +223,8 @@
AtomicReference<ActionExecutionStatusReporter> statusReporterRef,
Supplier<ImmutableList<Root>> sourceRootSupplier,
PathFragment relativeOutputPath,
- AtomicReference<FilesystemCalls> syscalls) {
+ AtomicReference<FilesystemCalls> syscalls,
+ Function<SkyKey, ThreadStateReceiver> threadStateReceiverFactory) {
this.actionKeyContext = actionKeyContext;
this.outputArtifactsSeen = outputArtifactsSeen;
this.outputArtifactsFromActionCache = outputArtifactsFromActionCache;
@@ -228,6 +232,7 @@
this.sourceRootSupplier = sourceRootSupplier;
this.relativeOutputPath = relativeOutputPath;
this.syscalls = syscalls;
+ this.threadStateReceiverFactory = threadStateReceiverFactory;
}
SharedActionCallback getSharedActionCallback(
@@ -447,7 +452,7 @@
topLevelFilesets,
actionFileSystem,
skyframeDepsResult,
- syscalls);
+ actionLookupData);
if (actionCacheChecker.isActionExecutionProhibited(action)) {
// We can't execute an action (e.g. because --check_???_up_to_date option was used). Fail the
@@ -514,7 +519,7 @@
ImmutableMap<Artifact, ImmutableList<FilesetOutputSymlink>> topLevelFilesets,
@Nullable FileSystem actionFileSystem,
@Nullable Object skyframeDepsResult,
- AtomicReference<FilesystemCalls> syscalls)
+ ActionLookupData actionLookupData)
throws InterruptedException {
boolean emitProgressEvents = shouldEmitProgressEvents(action);
ArtifactPathResolver artifactPathResolver =
@@ -550,7 +555,8 @@
actionFileSystem,
skyframeDepsResult,
nestedSetExpander,
- syscalls.get());
+ syscalls.get(),
+ threadStateReceiverFactory.apply(actionLookupData));
}
private static void closeContext(
@@ -752,7 +758,8 @@
env,
actionFileSystem,
nestedSetExpander,
- syscalls.get());
+ syscalls.get(),
+ threadStateReceiverFactory.apply(actionLookupData));
if (actionFileSystem != null) {
updateActionFileSystemContext(
actionFileSystem,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index b0f3140..12c4572 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -65,6 +65,7 @@
import com.google.devtools.build.lib.actions.FilesetOutputSymlink;
import com.google.devtools.build.lib.actions.MetadataProvider;
import com.google.devtools.build.lib.actions.ResourceManager;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.UserExecException;
import com.google.devtools.build.lib.analysis.AnalysisOptions;
import com.google.devtools.build.lib.analysis.AnalysisProtos.ActionGraphContainer;
@@ -359,6 +360,8 @@
private final boolean shouldUnblockCpuWorkWhenFetchingDeps;
+ private final SkyKeyStateReceiver skyKeyStateReceiver;
+
private PerBuildSyscallCache perBuildSyscallCache;
private final PathResolverFactory pathResolverFactory = new PathResolverFactoryImpl();
@@ -418,6 +421,7 @@
@Nullable PackageProgressReceiver packageProgress,
@Nullable ConfiguredTargetProgressReceiver configuredTargetProgress,
@Nullable ManagedDirectoriesKnowledge managedDirectoriesKnowledge,
+ SkyKeyStateReceiver skyKeyStateReceiver,
BugReporter bugReporter) {
// Strictly speaking, these arguments are not required for initialization, but all current
// callsites have them at hand, so we might as well set them during construction.
@@ -426,6 +430,7 @@
this.pkgFactory = pkgFactory;
this.shouldUnblockCpuWorkWhenFetchingDeps = shouldUnblockCpuWorkWhenFetchingDeps;
this.graphInconsistencyReceiver = graphInconsistencyReceiver;
+ this.skyKeyStateReceiver = skyKeyStateReceiver;
this.bugReporter = bugReporter;
this.pkgFactory.setSyscalls(syscalls);
this.workspaceStatusActionFactory = workspaceStatusActionFactory;
@@ -452,7 +457,8 @@
statusReporterRef,
this::getPathEntries,
PathFragment.create(directories.getRelativeOutputPath()),
- syscalls);
+ syscalls,
+ skyKeyStateReceiver::makeThreadStateReceiver);
this.artifactFactory =
new ArtifactFactory(
/* execRootParent= */ directories.getExecRootBase(),
@@ -547,7 +553,8 @@
actionOnIOExceptionReadingBuildFile,
tracksStateForIncrementality()
? IncrementalityIntent.INCREMENTAL
- : IncrementalityIntent.NON_INCREMENTAL));
+ : IncrementalityIntent.NON_INCREMENTAL,
+ skyKeyStateReceiver::makeThreadStateReceiver));
map.put(SkyFunctions.PACKAGE_ERROR, new PackageErrorFunction());
map.put(SkyFunctions.PACKAGE_ERROR_MESSAGE, new PackageErrorMessageFunction());
map.put(SkyFunctions.TARGET_PATTERN_ERROR, new TargetPatternErrorFunction());
@@ -3028,12 +3035,29 @@
}
@Override
+ public void stateStarting(SkyKey skyKey, NodeState nodeState) {
+ if (NodeState.COMPUTE.equals(nodeState)) {
+ skyKeyStateReceiver.computationStarted(skyKey);
+ }
+ }
+
+ @Override
+ public void stateEnding(SkyKey skyKey, NodeState nodeState, long elapsedTimeNanos) {
+ if (NodeState.COMPUTE.equals(nodeState)) {
+ skyKeyStateReceiver.computationEnded(skyKey);
+ }
+ }
+
+ @Override
public void evaluated(
SkyKey skyKey,
@Nullable SkyValue newValue,
@Nullable ErrorInfo newError,
Supplier<EvaluationSuccessState> evaluationSuccessState,
EvaluationState state) {
+ if (EvaluationState.BUILT.equals(state)) {
+ skyKeyStateReceiver.evaluated(skyKey);
+ }
if (ignoreInvalidations) {
return;
}
@@ -3200,4 +3224,22 @@
.build();
return buildDriver.evaluate(roots, evaluationContext);
}
+
+ /** Receiver for successfully evaluated/doing computation {@link SkyKey}s. */
+ public interface SkyKeyStateReceiver {
+ SkyKeyStateReceiver NULL_INSTANCE = new SkyKeyStateReceiver() {};
+
+ /** Called when {@code key}'s associated {@link SkyFunction#compute} is called. */
+ default void computationStarted(SkyKey key) {}
+
+ /** Called when {@code key}'s associated {@link SkyFunction#compute} has finished. */
+ default void computationEnded(SkyKey key) {}
+
+ /** Called when {@code key} has been evaluated and has a value. */
+ default void evaluated(SkyKey key) {}
+
+ default ThreadStateReceiver makeThreadStateReceiver(SkyKey key) {
+ return ThreadStateReceiver.NULL_INSTANCE;
+ }
+ }
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java
index dbc0e33..46451e1 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java
@@ -36,6 +36,7 @@
* @param fileSystem the Blaze file system
* @param directories Blaze directories
* @param workspaceStatusActionFactory a factory for creating WorkspaceStatusAction objects
+ * @param skyKeyStateReceiver a receiver for SkyKeys as they start evaluating and are evaluated
* @param bugReporter BugReporter: always BugReporter.defaultInstance() outside of Java tests
* @return an instance of the SkyframeExecutor
* @throws AbruptExitException if the executor cannot be created
@@ -50,6 +51,7 @@
ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions,
Iterable<SkyValueDirtinessChecker> customDirtinessCheckers,
ManagedDirectoriesKnowledge managedDirectoriesKnowledge,
+ SkyframeExecutor.SkyKeyStateReceiver skyKeyStateReceiver,
BugReporter bugReporter)
throws AbruptExitException;
}
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 589bf7f..2eb0449 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
@@ -27,6 +27,7 @@
import com.google.common.hash.HashFunction;
import com.google.devtools.build.lib.actions.FileStateValue;
import com.google.devtools.build.lib.actions.FileValue;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -513,7 +514,8 @@
/*packageProgress=*/ null,
getActionOnIOExceptionReadingBuildFile(),
// Tell PackageFunction to optimize for our use-case of no incrementality.
- IncrementalityIntent.NON_INCREMENTAL))
+ IncrementalityIntent.NON_INCREMENTAL,
+ k -> ThreadStateReceiver.NULL_INSTANCE))
.putAll(extraSkyFunctions);
return builder.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD
index ee61ac0..bf0855e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD
@@ -29,6 +29,7 @@
deps = [
":PackageLoader",
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:blaze_directories",
"//src/main/java/com/google/devtools/build/lib/analysis:server_directories",
diff --git a/src/main/protobuf/failure_details.proto b/src/main/protobuf/failure_details.proto
index 996991e..113af0e 100644
--- a/src/main/protobuf/failure_details.proto
+++ b/src/main/protobuf/failure_details.proto
@@ -879,6 +879,7 @@
COMMAND_LINE_EXPANSION_FAILURE = 3 [(metadata) = { exit_code: 7 }];
ACTION_GRAPH_DUMP_FAILED = 4 [(metadata) = { exit_code: 7 }];
STARLARK_HEAP_DUMP_FAILED = 5 [(metadata) = { exit_code: 8 }];
+ reserved 6; // For internal use
}
Code code = 1;
diff --git a/src/test/java/com/google/devtools/build/lib/actions/BUILD b/src/test/java/com/google/devtools/build/lib/actions/BUILD
index c31a3a7..74b741b 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/actions/BUILD
@@ -38,6 +38,7 @@
"//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity",
"//src/main/java/com/google/devtools/build/lib/actions:middleman_type",
"//src/main/java/com/google/devtools/build/lib/actions:package_roots",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/custom_command_line",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/symlink_action",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
diff --git a/src/test/java/com/google/devtools/build/lib/actions/ExecutableSymlinkActionTest.java b/src/test/java/com/google/devtools/build/lib/actions/ExecutableSymlinkActionTest.java
index e0a94e5..700afe0 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/ExecutableSymlinkActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/ExecutableSymlinkActionTest.java
@@ -83,7 +83,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
index c5699a5..0e6fa07 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
@@ -57,6 +57,7 @@
import com.google.devtools.build.lib.actions.MiddlemanType;
import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.actions.PackageRootResolver;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.cache.MetadataHandler;
import com.google.devtools.build.lib.actions.cache.Protos.ActionCacheStatistics.MissDetail;
import com.google.devtools.build.lib.actions.cache.Protos.ActionCacheStatistics.MissReason;
@@ -176,7 +177,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
public static ActionExecutionContext createContext(ExtendedEventHandler eventHandler) {
@@ -197,7 +199,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
public static ActionExecutionContext createContextForInputDiscovery(
@@ -223,7 +226,8 @@
new BlockingSkyFunctionEnvironment(buildDriver, eventHandler),
/*actionFileSystem=*/ null,
nestedSetExpander,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
public static Artifact createArtifact(ArtifactRoot root, Path path) {
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/BUILD b/src/test/java/com/google/devtools/build/lib/actions/util/BUILD
index 72df533..8ce6878 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/BUILD
@@ -24,6 +24,7 @@
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/actions:middleman_type",
"//src/main/java/com/google/devtools/build/lib/actions:package_roots",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/custom_command_line",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/spawn_action_template",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/BUILD
index 353c813..0b96d3c 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/BUILD
@@ -44,6 +44,7 @@
"//src/main/java/com/google/devtools/build/lib/actions:commandline_item",
"//src/main/java/com/google/devtools/build/lib/actions:execution_requirements",
"//src/main/java/com/google/devtools/build/lib/actions:fileset_output_symlink",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/binary_file_write_action",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/compression",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/custom_command_line",
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionTestCase.java
index 8ce6c09..b41421f 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionTestCase.java
@@ -27,6 +27,7 @@
import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.Executor;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.analysis.util.ActionTester;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.collect.nestedset.NestedSetExpander;
@@ -81,7 +82,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
protected void checkNoInputsByDefault() {
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/ParamFileWriteActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/ParamFileWriteActionTest.java
index cf30e9d..1d4d3da 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/actions/ParamFileWriteActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/ParamFileWriteActionTest.java
@@ -31,6 +31,7 @@
import com.google.devtools.build.lib.actions.CommandLine;
import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.analysis.util.ActionTester;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
@@ -205,7 +206,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
private enum KeyAttributes {
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java
index 4573cd4..4144c78 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java
@@ -23,6 +23,7 @@
import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.Executor;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.collect.nestedset.NestedSetExpander;
@@ -102,7 +103,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS));
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE));
assertThat(actionResult.spawnResults()).isEmpty();
assertThat(output.isSymbolicLink()).isTrue();
assertThat(output.resolveSymbolicLinks()).isEqualTo(input);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionActionTest.java
index 334fbf1..cfdf49b 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionActionTest.java
@@ -28,6 +28,7 @@
import com.google.devtools.build.lib.actions.ArtifactRoot;
import com.google.devtools.build.lib.actions.ArtifactRoot.RootType;
import com.google.devtools.build.lib.actions.Executor;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -208,7 +209,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
private void executeTemplateExpansion(String expected) throws Exception {
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD
index 0c71f66..401e867 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD
@@ -41,6 +41,7 @@
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
"//src/main/java/com/google/devtools/build/lib/actions:commandline_item",
"//src/main/java/com/google/devtools/build/lib/actions:package_roots",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/parameter_file_write_action",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_options",
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index a633bfe..20628fe 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -59,6 +59,7 @@
import com.google.devtools.build.lib.actions.MiddlemanFactory;
import com.google.devtools.build.lib.actions.MutableActionGraph;
import com.google.devtools.build.lib.actions.ParameterFile;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.actions.util.DummyExecutor;
import com.google.devtools.build.lib.analysis.AnalysisEnvironment;
@@ -2459,7 +2460,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD
index 89c87e9..d330410 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD
@@ -19,6 +19,7 @@
srcs = glob(["*.java"]),
deps = [
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:blaze_directories",
"//src/main/java/com/google/devtools/build/lib/analysis:server_directories",
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleFunctionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleFunctionTest.java
index 147639e..0a383be 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleFunctionTest.java
@@ -25,6 +25,7 @@
import com.google.common.hash.HashFunction;
import com.google.devtools.build.lib.actions.FileStateValue;
import com.google.devtools.build.lib.actions.FileValue;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -138,17 +139,18 @@
.put(
SkyFunctions.PACKAGE,
new PackageFunction(
- /* packageFactory= */ null,
- /* pkgLocator= */ null,
- /* showLoadingProgress= */ null,
- /* packageFunctionCache= */ null,
- /* compiledBuildFileCache= */ null,
- /* numPackagesLoaded= */ null,
- /* bzlLoadFunctionForInlining= */ null,
- /* packageProgress= */ null,
+ /*packageFactory=*/ null,
+ /*pkgLocator=*/ null,
+ /*showLoadingProgress=*/ null,
+ /*packageFunctionCache=*/ null,
+ /*compiledBuildFileCache=*/ null,
+ /*numPackagesLoaded=*/ null,
+ /*bzlLoadFunctionForInlining=*/ null,
+ /*packageProgress=*/ null,
PackageFunction.ActionOnIOExceptionReadingBuildFile.UseOriginalIOException
.INSTANCE,
- PackageFunction.IncrementalityIntent.INCREMENTAL))
+ PackageFunction.IncrementalityIntent.INCREMENTAL,
+ ignored -> ThreadStateReceiver.NULL_INSTANCE))
.put(
SkyFunctions.PACKAGE_LOOKUP,
new PackageLookupFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/exec/BUILD b/src/test/java/com/google/devtools/build/lib/exec/BUILD
index 4475449..4ee36bb 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/exec/BUILD
@@ -27,6 +27,7 @@
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/actions:fileset_output_symlink",
"//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:blaze_directories",
"//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
diff --git a/src/test/java/com/google/devtools/build/lib/exec/StandaloneTestStrategyTest.java b/src/test/java/com/google/devtools/build/lib/exec/StandaloneTestStrategyTest.java
index 57f17fd..d293698 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/StandaloneTestStrategyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/StandaloneTestStrategyTest.java
@@ -37,6 +37,7 @@
import com.google.devtools.build.lib.actions.SpawnResult;
import com.google.devtools.build.lib.actions.SpawnResult.Status;
import com.google.devtools.build.lib.actions.SpawnStrategy;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.cache.MetadataHandler;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
@@ -153,7 +154,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
this.actionContextRegistry = actionContextRegistry;
}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/BUILD b/src/test/java/com/google/devtools/build/lib/packages/BUILD
index 8239467..f6a0b2d 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/packages/BUILD
@@ -51,6 +51,7 @@
":PackageTestsUtil",
":testutil",
"//src/main/java/com/google/devtools/build/lib/actions",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_options",
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment",
diff --git a/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java b/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java
index 944ae45..d90c55c 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java
@@ -18,6 +18,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.packages.Globber.BadGlobException;
import com.google.devtools.build.lib.testutil.Scratch;
@@ -112,7 +113,8 @@
},
null,
TestUtils.getPool(),
- -1);
+ -1,
+ ThreadStateReceiver.NULL_INSTANCE);
}
@After
diff --git a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
index fa927c0..21141f1 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
@@ -24,6 +24,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
@@ -1253,7 +1254,8 @@
},
null,
TestUtils.getPool(),
- -1);
+ -1,
+ ThreadStateReceiver.NULL_INSTANCE);
assertThat(globCache.globUnsorted(include, exclude, false, true))
.containsExactlyElementsIn(expected);
}
diff --git a/src/test/java/com/google/devtools/build/lib/repository/BUILD b/src/test/java/com/google/devtools/build/lib/repository/BUILD
index 13ebbc0..e4a8c2f 100644
--- a/src/test/java/com/google/devtools/build/lib/repository/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/repository/BUILD
@@ -17,6 +17,7 @@
srcs = glob(["*.java"]),
deps = [
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:blaze_directories",
"//src/main/java/com/google/devtools/build/lib/analysis:server_directories",
"//src/main/java/com/google/devtools/build/lib/cmdline",
diff --git a/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java b/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java
index f5bbf76..7da1608 100644
--- a/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java
+++ b/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java
@@ -24,6 +24,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.FileStateValue;
import com.google.devtools.build.lib.actions.FileValue;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
@@ -163,7 +164,8 @@
null,
/*packageProgress=*/ null,
PackageFunction.ActionOnIOExceptionReadingBuildFile.UseOriginalIOException.INSTANCE,
- PackageFunction.IncrementalityIntent.INCREMENTAL));
+ PackageFunction.IncrementalityIntent.INCREMENTAL,
+ k -> ThreadStateReceiver.NULL_INSTANCE));
skyFunctions.put(
SkyFunctions.EXTERNAL_PACKAGE,
new ExternalPackageFunction(BazelSkyframeExecutorConstants.EXTERNAL_PACKAGE_HELPER));
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD b/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD
index e1a57e5..1bcc5f4 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD
@@ -493,6 +493,7 @@
deps = [
"//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/rules/cpp",
@@ -583,6 +584,7 @@
deps = [
"//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/events",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java
index dd8279a..ca32999 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java
@@ -27,6 +27,7 @@
import com.google.devtools.build.lib.actions.ArtifactPathResolver;
import com.google.devtools.build.lib.actions.ArtifactRoot;
import com.google.devtools.build.lib.actions.ArtifactRoot.RootType;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.actions.util.DummyExecutor;
import com.google.devtools.build.lib.collect.nestedset.NestedSetExpander;
@@ -143,7 +144,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/LtoBackendActionTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/LtoBackendActionTest.java
index 73f62aa..27943fe 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/LtoBackendActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/LtoBackendActionTest.java
@@ -26,6 +26,7 @@
import com.google.devtools.build.lib.actions.ActionInputPrefetcher;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.Executor;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.analysis.Runfiles;
import com.google.devtools.build.lib.analysis.SingleRunfilesSupplier;
@@ -105,7 +106,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/BUILD b/src/test/java/com/google/devtools/build/lib/rules/objc/BUILD
index b6f2b03..1fb99bb 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/BUILD
@@ -25,6 +25,7 @@
":J2ObjcLibraryTest",
"//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_configuration",
"//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java
index 28bcfe3..75d6abc 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java
@@ -34,6 +34,7 @@
import com.google.devtools.build.lib.actions.Artifact.SpecialArtifact;
import com.google.devtools.build.lib.actions.Artifact.TreeFileArtifact;
import com.google.devtools.build.lib.actions.CommandAction;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
@@ -807,7 +808,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
ByteArrayOutputStream moduleMapStream = new ByteArrayOutputStream();
ByteArrayOutputStream umbrellaHeaderStream = new ByteArrayOutputStream();
moduleMapAction.newDeterministicWriter(dummyActionExecutionContext)
@@ -866,7 +868,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
ByteArrayOutputStream moduleMapStream = new ByteArrayOutputStream();
ByteArrayOutputStream umbrellaHeaderStream = new ByteArrayOutputStream();
diff --git a/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD b/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD
index be90f49..1b2f535 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD
@@ -17,6 +17,7 @@
srcs = glob(["*.java"]),
deps = [
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:blaze_directories",
"//src/main/java/com/google/devtools/build/lib/analysis:server_directories",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java b/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java
index bbdf490..16cb821 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java
@@ -25,6 +25,7 @@
import com.google.common.hash.HashFunction;
import com.google.devtools.build.lib.actions.FileStateValue;
import com.google.devtools.build.lib.actions.FileValue;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -181,7 +182,8 @@
/*packageProgress=*/ null,
PackageFunction.ActionOnIOExceptionReadingBuildFile.UseOriginalIOException
.INSTANCE,
- PackageFunction.IncrementalityIntent.INCREMENTAL))
+ PackageFunction.IncrementalityIntent.INCREMENTAL,
+ k -> ThreadStateReceiver.NULL_INSTANCE))
.put(
SkyFunctions.PACKAGE_LOOKUP,
new PackageLookupFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/AbstractCollectPackagesUnderDirectoryTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/AbstractCollectPackagesUnderDirectoryTest.java
index d388908..c505e40 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/AbstractCollectPackagesUnderDirectoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/AbstractCollectPackagesUnderDirectoryTest.java
@@ -295,6 +295,7 @@
getExtraSkyFunctions(),
/*customDirtinessCheckers=*/ ImmutableList.of(),
/*managedDirectoriesKnowledge=*/ null,
+ SkyframeExecutor.SkyKeyStateReceiver.NULL_INSTANCE,
BugReporter.defaultInstance());
skyframeExecutor.injectExtraPrecomputedValues(
ImmutableList.of(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
index 694b29f..5d0f271 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
@@ -21,6 +21,7 @@
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.FileStateValue;
import com.google.devtools.build.lib.actions.FileValue;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.InjectedActionLookupKey;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -123,7 +124,8 @@
/*packageProgress=*/ null,
PackageFunction.ActionOnIOExceptionReadingBuildFile.UseOriginalIOException
.INSTANCE,
- PackageFunction.IncrementalityIntent.INCREMENTAL))
+ PackageFunction.IncrementalityIntent.INCREMENTAL,
+ k -> ThreadStateReceiver.NULL_INSTANCE))
.put(
SkyFunctions.PACKAGE_LOOKUP,
new PackageLookupFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
index 5c4311c..82bbfee 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -117,6 +117,7 @@
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/actions:middleman_type",
"//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/actionsketch:action_sketch",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/custom_command_line",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/spawn_action_template",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
index 67cfaa7..3524b12 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
@@ -21,6 +21,7 @@
import com.google.common.testing.EqualsTester;
import com.google.devtools.build.lib.actions.FileStateValue;
import com.google.devtools.build.lib.actions.FileValue;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
@@ -122,7 +123,8 @@
null,
/*packageProgress=*/ null,
PackageFunction.ActionOnIOExceptionReadingBuildFile.UseOriginalIOException.INSTANCE,
- PackageFunction.IncrementalityIntent.INCREMENTAL));
+ PackageFunction.IncrementalityIntent.INCREMENTAL,
+ k -> ThreadStateReceiver.NULL_INSTANCE));
skyFunctions.put(
SkyFunctions.IGNORED_PACKAGE_PREFIXES,
new IgnoredPackagePrefixesFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
index 4cc4731..cdc2e7c 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
@@ -36,6 +36,7 @@
import com.google.devtools.build.lib.actions.FileValue.DifferentRealPathFileValueWithoutStoredChain;
import com.google.devtools.build.lib.actions.FileValue.SymlinkFileValueWithStoredChain;
import com.google.devtools.build.lib.actions.FileValue.SymlinkFileValueWithoutStoredChain;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -192,7 +193,8 @@
/*packageProgress=*/ null,
PackageFunction.ActionOnIOExceptionReadingBuildFile.UseOriginalIOException
.INSTANCE,
- PackageFunction.IncrementalityIntent.INCREMENTAL))
+ PackageFunction.IncrementalityIntent.INCREMENTAL,
+ k -> ThreadStateReceiver.NULL_INSTANCE))
.put(
SkyFunctions.PACKAGE_LOOKUP,
new PackageLookupFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
index e04b21f..04d83d9 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
@@ -32,6 +32,7 @@
import com.google.devtools.build.lib.actions.FileArtifactValue.RemoteFileArtifactValue;
import com.google.devtools.build.lib.actions.FileStateValue;
import com.google.devtools.build.lib.actions.FileValue;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.actions.util.TestAction;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
@@ -155,7 +156,8 @@
null,
/*packageProgress=*/ null,
PackageFunction.ActionOnIOExceptionReadingBuildFile.UseOriginalIOException.INSTANCE,
- PackageFunction.IncrementalityIntent.INCREMENTAL));
+ PackageFunction.IncrementalityIntent.INCREMENTAL,
+ k -> ThreadStateReceiver.NULL_INSTANCE));
skyFunctions.put(
SkyFunctions.PACKAGE_LOOKUP,
new PackageLookupFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
index e6f7f09..de4cf3b 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
@@ -23,6 +23,7 @@
import com.google.common.testing.EqualsTester;
import com.google.devtools.build.lib.actions.FileStateValue;
import com.google.devtools.build.lib.actions.FileValue;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
@@ -130,7 +131,8 @@
null,
/*packageProgress=*/ null,
PackageFunction.ActionOnIOExceptionReadingBuildFile.UseOriginalIOException.INSTANCE,
- PackageFunction.IncrementalityIntent.INCREMENTAL));
+ PackageFunction.IncrementalityIntent.INCREMENTAL,
+ k -> ThreadStateReceiver.NULL_INSTANCE));
skyFunctions.put(
FileStateValue.FILE_STATE,
new FileStateFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
index 1944074..1c9ae9e 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
@@ -43,6 +43,7 @@
import com.google.devtools.build.lib.actions.FilesetTraversalParams.DirectTraversalRoot;
import com.google.devtools.build.lib.actions.FilesetTraversalParams.PackageBoundaryMode;
import com.google.devtools.build.lib.actions.HasDigest;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
@@ -177,7 +178,8 @@
null,
/*packageProgress=*/ null,
PackageFunction.ActionOnIOExceptionReadingBuildFile.UseOriginalIOException.INSTANCE,
- PackageFunction.IncrementalityIntent.INCREMENTAL));
+ PackageFunction.IncrementalityIntent.INCREMENTAL,
+ k -> ThreadStateReceiver.NULL_INSTANCE));
skyFunctions.put(
WorkspaceFileValue.WORKSPACE_FILE,
new WorkspaceFileFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
index 3417196..fbc827f5 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
@@ -49,6 +49,7 @@
import com.google.devtools.build.lib.actions.MetadataProvider;
import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.actions.TestExecException;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.cache.ActionCache;
import com.google.devtools.build.lib.actions.cache.Protos.ActionCacheStatistics;
import com.google.devtools.build.lib.actions.cache.Protos.ActionCacheStatistics.MissReason;
@@ -246,7 +247,8 @@
new AtomicReference<>(statusReporter),
/*sourceRootSupplier=*/ ImmutableList::of,
PathFragment.create(directories.getRelativeOutputPath()),
- new AtomicReference<>(UnixGlob.DEFAULT_SYSCALLS));
+ new AtomicReference<>(UnixGlob.DEFAULT_SYSCALLS),
+ k -> ThreadStateReceiver.NULL_INSTANCE);
Path actionOutputBase = scratch.dir("/usr/local/google/_blaze_jrluser/FAKEMD5/action_out/");
skyframeActionExecutor.setActionLogBufferPathGenerator(
@@ -289,7 +291,8 @@
/*packageProgress=*/ null,
PackageFunction.ActionOnIOExceptionReadingBuildFile.UseOriginalIOException
.INSTANCE,
- PackageFunction.IncrementalityIntent.INCREMENTAL))
+ PackageFunction.IncrementalityIntent.INCREMENTAL,
+ k -> ThreadStateReceiver.NULL_INSTANCE))
.put(
SkyFunctions.PACKAGE_LOOKUP,
new PackageLookupFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/standalone/BUILD b/src/test/java/com/google/devtools/build/lib/standalone/BUILD
index 4300709..1dbf38a 100644
--- a/src/test/java/com/google/devtools/build/lib/standalone/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/standalone/BUILD
@@ -19,6 +19,7 @@
"//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
"//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:blaze_directories",
"//src/main/java/com/google/devtools/build/lib/analysis:server_directories",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
diff --git a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
index 54868a7..95cf263 100644
--- a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
@@ -35,6 +35,7 @@
import com.google.devtools.build.lib.actions.SimpleSpawn;
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.SpawnResult;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil.NullAction;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
@@ -216,7 +217,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/starlark/BUILD b/src/test/java/com/google/devtools/build/lib/starlark/BUILD
index 343bfb6..8030d27 100644
--- a/src/test/java/com/google/devtools/build/lib/starlark/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/starlark/BUILD
@@ -29,6 +29,7 @@
"//src/main/java/com/google/devtools/build/lib/actions:action_lookup_key",
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
"//src/main/java/com/google/devtools/build/lib/actions:commandline_item",
+ "//src/main/java/com/google/devtools/build/lib/actions:thread_state_receiver",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/parameter_file_write_action",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/substitution",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/template_expansion_action",
diff --git a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkActionWithShadowedActionTest.java b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkActionWithShadowedActionTest.java
index 3dda0f5..04724e1 100644
--- a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkActionWithShadowedActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkActionWithShadowedActionTest.java
@@ -28,6 +28,7 @@
import com.google.devtools.build.lib.actions.ActionInputPrefetcher;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.Executor;
+import com.google.devtools.build.lib.actions.ThreadStateReceiver;
import com.google.devtools.build.lib.analysis.actions.StarlarkAction;
import com.google.devtools.build.lib.analysis.util.AnalysisTestUtil;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
@@ -120,7 +121,8 @@
/*actionFileSystem=*/ null,
/*skyframeDepsResult=*/ null,
NestedSetExpander.DEFAULT,
- UnixGlob.DEFAULT_SYSCALLS);
+ UnixGlob.DEFAULT_SYSCALLS,
+ ThreadStateReceiver.NULL_INSTANCE);
}
@Test