diff options
Diffstat (limited to 'src/main/java/com')
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; |