aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2017-02-24 16:30:15 +0000
committerGravatar Yue Gan <yueg@google.com>2017-02-27 15:05:00 +0000
commit777b30d06700f76ba580715429f3663de3fa0529 (patch)
treed3abdc6f42d04256c486270add24e5b0c5d3abbd /src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java
parent25aa033ad5657a5cfa16e8307464648b9374be2d (diff)
Provide more reporting options to SkyFunctions
With more specific information to be reported by Skyfunctions, e.g., to inform the build-event protocol on missing files, the EventHandler interface is no longer enough. Therefore, provide an enriched context for reporting events. -- Change-Id: I2d06166fe4d5b9054e24ad8c752fafc039e3f9f8 Reviewed-on: https://cr.bazel.build/8794 PiperOrigin-RevId: 148463437 MOS_MIGRATED_REVID=148463437
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java b/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java
index aa84dee8cb..80785ca0ca 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java
@@ -24,7 +24,7 @@ import com.google.common.collect.SetMultimap;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.AbstractQueueVisitor;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.packages.AggregatingAttributeMapper;
import com.google.devtools.build.lib.packages.AspectDefinition;
import com.google.devtools.build.lib.packages.Attribute;
@@ -208,9 +208,14 @@ final class LabelVisitor {
this.edgeFilter = edgeFilter;
}
- boolean syncWithVisitor(EventHandler eventHandler, Collection<Target> targetsToVisit,
- boolean keepGoing, int parallelThreads, int maxDepth, TargetEdgeObserver... observers)
- throws InterruptedException {
+ boolean syncWithVisitor(
+ ExtendedEventHandler eventHandler,
+ Collection<Target> targetsToVisit,
+ boolean keepGoing,
+ int parallelThreads,
+ int maxDepth,
+ TargetEdgeObserver... observers)
+ throws InterruptedException {
VisitationAttributes nextVisitation = new VisitationAttributes();
nextVisitation.targetsToVisit = targetsToVisit;
nextVisitation.maxDepth = maxDepth;
@@ -229,12 +234,13 @@ final class LabelVisitor {
}
// Does a bounded transitive visitation starting at the given top-level targets.
- private boolean redoVisitation(EventHandler eventHandler,
- VisitationAttributes visitation,
- boolean keepGoing,
- int parallelThreads,
- int maxDepth,
- TargetEdgeObserver... observers)
+ private boolean redoVisitation(
+ ExtendedEventHandler eventHandler,
+ VisitationAttributes visitation,
+ boolean keepGoing,
+ int parallelThreads,
+ int maxDepth,
+ TargetEdgeObserver... observers)
throws InterruptedException {
visitedMap.clear();
visitedTargets.clear();
@@ -264,7 +270,7 @@ final class LabelVisitor {
private final static String THREAD_NAME = "LabelVisitor";
- private final EventHandler eventHandler;
+ private final ExtendedEventHandler eventHandler;
private final boolean keepGoing;
private final int maxDepth;
private final Iterable<TargetEdgeObserver> observers;
@@ -273,8 +279,12 @@ final class LabelVisitor {
private static final boolean CONCURRENT = true;
- public Visitor(EventHandler eventHandler, boolean keepGoing, int parallelThreads,
- int maxDepth, TargetEdgeObserver... observers) {
+ public Visitor(
+ ExtendedEventHandler eventHandler,
+ boolean keepGoing,
+ int parallelThreads,
+ int maxDepth,
+ TargetEdgeObserver... observers) {
// Observing the loading phase of a typical large package (with all subpackages) shows
// maximum thread-level concurrency of ~20. Limiting the total number of threads to 200 is
// therefore conservative and should help us avoid hitting native limits.