diff options
author | Klaus Aehlig <aehlig@google.com> | 2016-04-07 11:23:54 +0000 |
---|---|---|
committer | Lukacs Berki <lberki@google.com> | 2016-04-07 11:52:17 +0000 |
commit | 9acfe0c789db3287fdf40013ac1013244c78b00f (patch) | |
tree | c31adf0ded94daaca098245cb20241e898dd83cf /src | |
parent | ec3dd7c6aa3ec1dee345ce1d1b60acacdb67acad (diff) |
SkyframeExecutor: use a LoadingProgressReceiver during loading phase
In this way, information about the progress of the loading phase
is collected.
--
Change-Id: I80ff0c91e27f0b55780c18c05fbb4fdda93263d3
Reviewed-on: https://bazel-review.googlesource.com/#/c/3268
MOS_MIGRATED_REVID=119255431
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java index 0232429ec4..563646268d 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java @@ -1729,9 +1729,16 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { relativeWorkingDirectory.getPathString(), options.compileOneDependency, options.buildTestsOnly, determineTests, TestFilter.forOptions(options, eventHandler, ruleClassNames)); - EvaluationResult<TargetPatternPhaseValue> evalResult = - buildDriver.evaluate( - ImmutableList.of(key), keepGoing, /*numThreads=*/10, eventHandler); + EvaluationResult<TargetPatternPhaseValue> evalResult; + LoadingProgressReceiver loadingProgressReceiver = new LoadingProgressReceiver(); + progressReceiver.loadingProgressReceiver = loadingProgressReceiver; + try { + evalResult = + buildDriver.evaluate( + ImmutableList.of(key), keepGoing, /*numThreads=*/ 10, eventHandler); + } finally { + progressReceiver.loadingProgressReceiver = null; + } if (evalResult.hasError()) { ErrorInfo errorInfo = evalResult.getError(key); if (!Iterables.isEmpty(errorInfo.getCycleInfo())) { @@ -1780,6 +1787,8 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { protected boolean ignoreInvalidations = false; /** This receiver is only needed for execution, so it is null otherwise. */ @Nullable EvaluationProgressReceiver executionProgressReceiver = null; + /** This receiver is only needed for loading, so it is null otherwise. */ + @Nullable EvaluationProgressReceiver loadingProgressReceiver = null; @Override public void invalidated(SkyKey skyKey, InvalidationState state) { @@ -1795,6 +1804,9 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { return; } skyframeBuildView.getInvalidationReceiver().enqueueing(skyKey); + if (loadingProgressReceiver != null) { + loadingProgressReceiver.enqueueing(skyKey); + } if (executionProgressReceiver != null) { executionProgressReceiver.enqueueing(skyKey); } @@ -1809,6 +1821,9 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { return; } skyframeBuildView.getInvalidationReceiver().evaluated(skyKey, valueSupplier, state); + if (loadingProgressReceiver != null) { + loadingProgressReceiver.evaluated(skyKey, valueSupplier, state); + } if (executionProgressReceiver != null) { executionProgressReceiver.evaluated(skyKey, valueSupplier, state); } |