diff options
author | 2017-05-10 16:00:07 -0400 | |
---|---|---|
committer | 2017-05-11 10:49:18 -0400 | |
commit | ccc60e05a8315419c93d412b925e0a2a0e5ce807 (patch) | |
tree | 4a38eeac3bfeb400d0a0d9d94c8d3b3074700552 /src/main/java/com/google | |
parent | 6fb61a9972f122e779b9b1489e9ce192337151ca (diff) |
Add a EvaluationProgressReceiver#computing method.
RELNOTES: None
PiperOrigin-RevId: 155665128
Diffstat (limited to 'src/main/java/com/google')
4 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/CompoundEvaluationProgressReceiver.java b/src/main/java/com/google/devtools/build/skyframe/CompoundEvaluationProgressReceiver.java index 32bdf4f0a3..21f50cf6a3 100644 --- a/src/main/java/com/google/devtools/build/skyframe/CompoundEvaluationProgressReceiver.java +++ b/src/main/java/com/google/devtools/build/skyframe/CompoundEvaluationProgressReceiver.java @@ -47,6 +47,13 @@ public class CompoundEvaluationProgressReceiver implements EvaluationProgressRec } @Override + public void computing(SkyKey skyKey) { + for (EvaluationProgressReceiver receiver : receivers) { + receiver.computing(skyKey); + } + } + + @Override public void computed(SkyKey skyKey, long elapsedTimeNanos) { for (EvaluationProgressReceiver receiver : receivers) { receiver.computed(skyKey, elapsedTimeNanos); diff --git a/src/main/java/com/google/devtools/build/skyframe/DirtyTrackingProgressReceiver.java b/src/main/java/com/google/devtools/build/skyframe/DirtyTrackingProgressReceiver.java index a4899d62fb..f954a8ca54 100644 --- a/src/main/java/com/google/devtools/build/skyframe/DirtyTrackingProgressReceiver.java +++ b/src/main/java/com/google/devtools/build/skyframe/DirtyTrackingProgressReceiver.java @@ -92,6 +92,13 @@ public class DirtyTrackingProgressReceiver implements EvaluationProgressReceiver } @Override + public void computing(SkyKey skyKey) { + if (progressReceiver != null) { + progressReceiver.computing(skyKey); + } + } + + @Override public void computed(SkyKey skyKey, long elapsedTimeNanos) { if (progressReceiver != null) { progressReceiver.computed(skyKey, elapsedTimeNanos); diff --git a/src/main/java/com/google/devtools/build/skyframe/EvaluationProgressReceiver.java b/src/main/java/com/google/devtools/build/skyframe/EvaluationProgressReceiver.java index 266abd288d..8787c3e60f 100644 --- a/src/main/java/com/google/devtools/build/skyframe/EvaluationProgressReceiver.java +++ b/src/main/java/com/google/devtools/build/skyframe/EvaluationProgressReceiver.java @@ -59,6 +59,14 @@ public interface EvaluationProgressReceiver { void enqueueing(SkyKey skyKey); /** + * Notifies that {@code skyFunction.compute(skyKey, ...)} is about to be called, for some + * appropriate {@link SkyFunction} {@code skyFunction}. + * + * <p>Notably, this includes {@link SkyFunction#compute} calls due to Skyframe restarts. + */ + void computing(SkyKey skyKey); + + /** * Notifies that {@code skyFunction.compute(skyKey, ...)} has just been called, for some * appropriate {@link SkyFunction} {@code skyFunction}. * @@ -87,6 +95,10 @@ public interface EvaluationProgressReceiver { } @Override + public void computing(SkyKey skyKey) { + } + + @Override public void computed(SkyKey skyKey, long elapsedTimeNanos) { } 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 299df96eab..9e3316e49d 100644 --- a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java +++ b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java @@ -395,6 +395,7 @@ public final class ParallelEvaluator implements Evaluator { long startTime = BlazeClock.instance().nanoTime(); try { try { + evaluatorContext.getProgressReceiver().computing(skyKey); value = factory.compute(skyKey, env); } finally { long elapsedTimeNanos = BlazeClock.instance().nanoTime() - startTime; |