diff options
author | Klaus Aehlig <aehlig@google.com> | 2017-02-24 16:30:15 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2017-02-27 15:05:00 +0000 |
commit | 777b30d06700f76ba580715429f3663de3fa0529 (patch) | |
tree | d3abdc6f42d04256c486270add24e5b0c5d3abbd /src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java | |
parent | 25aa033ad5657a5cfa16e8307464648b9374be2d (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.java | 36 |
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. |