aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/InMemoryMemoizingEvaluator.java20
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java28
2 files changed, 31 insertions, 17 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/InMemoryMemoizingEvaluator.java b/src/main/java/com/google/devtools/build/skyframe/InMemoryMemoizingEvaluator.java
index 0c6d54f7f2..324be40ee4 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InMemoryMemoizingEvaluator.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryMemoizingEvaluator.java
@@ -21,6 +21,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.skyframe.Differencer.Diff;
import com.google.devtools.build.skyframe.InvalidatingNodeVisitor.DeletingInvalidationState;
@@ -157,8 +158,8 @@ public final class InMemoryMemoizingEvaluator implements MemoizingEvaluator {
injectValues(intVersion);
ParallelEvaluator evaluator = new ParallelEvaluator(graph, intVersion,
- skyFunctions, eventHandler, emittedEventState, keepGoing, numThreads, progressReceiver,
- dirtyKeyTracker);
+ skyFunctions, eventHandler, emittedEventState, DEFAULT_STORED_EVENT_FILTER, keepGoing,
+ numThreads, progressReceiver, dirtyKeyTracker);
EvaluationResult<T> result = evaluator.eval(roots);
return EvaluationResult.<T>builder()
.mergeFrom(result)
@@ -309,6 +310,21 @@ public final class InMemoryMemoizingEvaluator implements MemoizingEvaluator {
}
}
+ public static final Predicate<Event> DEFAULT_STORED_EVENT_FILTER = new Predicate<Event>() {
+ @Override
+ public boolean apply(Event event) {
+ switch (event.getKind()) {
+ case INFO:
+ throw new UnsupportedOperationException("Values should not display INFO messages: "
+ + event.getLocation() + ": " + event.getMessage());
+ case PROGRESS:
+ return false;
+ default:
+ return true;
+ }
+ }
+ };
+
public static final EvaluatorSupplier SUPPLIER = new EvaluatorSupplier() {
@Override
public MemoizingEvaluator create(
diff --git a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
index 0b0e00be9f..09296b5ca7 100644
--- a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
+++ b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
@@ -39,6 +39,7 @@ import com.google.devtools.build.lib.profiler.Profiler;
import com.google.devtools.build.lib.profiler.ProfilerTask;
import com.google.devtools.build.lib.util.GroupedList.GroupedListHelper;
import com.google.devtools.build.skyframe.EvaluationProgressReceiver.EvaluationState;
+import com.google.devtools.build.skyframe.MemoizingEvaluator.EmittedEventState;
import com.google.devtools.build.skyframe.NodeEntry.DependencyState;
import com.google.devtools.build.skyframe.Scheduler.SchedulerException;
import com.google.devtools.build.skyframe.SkyFunctionException.ReifiedSkyFunctionException;
@@ -113,16 +114,17 @@ public final class ParallelEvaluator implements Evaluator {
private final int threadCount;
@Nullable private final EvaluationProgressReceiver progressReceiver;
private final DirtyKeyTracker dirtyKeyTracker;
+ private final Predicate<Event> storedEventFilter;
private static final Interner<SkyKey> KEY_CANONICALIZER = Interners.newWeakInterner();
public ParallelEvaluator(ProcessableGraph graph, Version graphVersion,
- ImmutableMap<? extends SkyFunctionName, ? extends SkyFunction> skyFunctions,
- final EventHandler reporter,
- MemoizingEvaluator.EmittedEventState emittedEventState,
- boolean keepGoing, int threadCount,
- @Nullable EvaluationProgressReceiver progressReceiver,
- DirtyKeyTracker dirtyKeyTracker) {
+ ImmutableMap<? extends SkyFunctionName, ? extends SkyFunction> skyFunctions,
+ final EventHandler reporter,
+ EmittedEventState emittedEventState,
+ Predicate<Event> storedEventFilter, boolean keepGoing, int threadCount,
+ @Nullable EvaluationProgressReceiver progressReceiver,
+ DirtyKeyTracker dirtyKeyTracker) {
this.graph = graph;
this.skyFunctions = skyFunctions;
this.graphVersion = graphVersion;
@@ -133,6 +135,7 @@ public final class ParallelEvaluator implements Evaluator {
this.dirtyKeyTracker = Preconditions.checkNotNull(dirtyKeyTracker);
this.replayingNestedSetEventVisitor =
new NestedSetVisitor<>(new NestedSetEventReceiver(reporter), emittedEventState);
+ this.storedEventFilter = storedEventFilter;
}
/**
@@ -188,15 +191,10 @@ public final class ParallelEvaluator implements Evaluator {
@Override
public void handle(Event e) {
checkActive();
- switch (e.getKind()) {
- case INFO:
- throw new UnsupportedOperationException("Values should not display INFO messages: " +
- skyKey + " printed " + e.getLocation() + ": " + e.getMessage());
- case PROGRESS:
- reporter.handle(e);
- break;
- default:
- super.handle(e);
+ if (storedEventFilter.apply(e)) {
+ super.handle(e);
+ } else {
+ reporter.handle(e);
}
}
};