From a385d3eb7b78d4d155b7218019a08e7457f2514c Mon Sep 17 00:00:00 2001 From: Ulf Adams Date: Mon, 28 Sep 2015 13:21:45 +0000 Subject: Refactor BuildView; clearly identify the ide_build_info and the testing API. Also inject the EventHandler all the way through to the SkyframeExecutor. -- MOS_MIGRATED_REVID=104094731 --- .../build/lib/skyframe/SkyframeExecutor.java | 36 +++++++++++++--------- 1 file changed, 22 insertions(+), 14 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java') 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 cbf864d840..d21c14ff08 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 @@ -1091,14 +1091,17 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { * returned list. */ @ThreadSafety.ThreadSafe - public ImmutableList getConfiguredTargets(BuildConfiguration originalConfig, - Iterable keys, boolean useOriginalConfig) { - return getConfiguredTargetMap(originalConfig, keys, useOriginalConfig).values().asList(); + public ImmutableList getConfiguredTargets( + EventHandler eventHandler, BuildConfiguration originalConfig, Iterable keys, + boolean useOriginalConfig) { + return getConfiguredTargetMap( + eventHandler, originalConfig, keys, useOriginalConfig).values().asList(); } @ThreadSafety.ThreadSafe public ImmutableMap getConfiguredTargetMap( - BuildConfiguration originalConfig, Iterable keys, boolean useOriginalConfig) { + EventHandler eventHandler, BuildConfiguration originalConfig, Iterable keys, + boolean useOriginalConfig) { checkActive(); Map configs; @@ -1116,7 +1119,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { configs = new HashMap<>(); configs.put(Iterables.getOnlyElement(keys), originalConfig); } else { - configs = getConfigurations(originalConfig.getOptions(), keys); + configs = getConfigurations(eventHandler, originalConfig.getOptions(), keys); } } else { configs = new HashMap<>(); @@ -1134,7 +1137,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { } } - EvaluationResult result = evaluateSkyKeys(skyKeys); + EvaluationResult result = evaluateSkyKeys(eventHandler, skyKeys); ImmutableMap.Builder cts = ImmutableMap.builder(); DependentNodeLoop: @@ -1169,8 +1172,8 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { * Retrieves the configurations needed for the given deps, trimming down their fragments * to those only needed by their transitive closures. */ - private Map getConfigurations(BuildOptions fromOptions, - Iterable keys) { + private Map getConfigurations(EventHandler eventHandler, + BuildOptions fromOptions, Iterable keys) { Map builder = new HashMap<>(); Set depsToEvaluate = new HashSet<>(); @@ -1190,7 +1193,8 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { transitiveFragmentSkyKeys.add(TransitiveTargetValue.key(key.getLabel())); } } - EvaluationResult fragmentsResult = evaluateSkyKeys(transitiveFragmentSkyKeys); + EvaluationResult fragmentsResult = evaluateSkyKeys( + eventHandler, transitiveFragmentSkyKeys); for (Dependency key : keys) { if (!depsToEvaluate.contains(key)) { // No fragments to compute here. @@ -1212,7 +1216,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { configSkyKeys.add(BuildConfigurationValue.key(fragmentsMap.get(key.getLabel()), getDynamicConfigOptions(key, fromOptions))); } - EvaluationResult configsResult = evaluateSkyKeys(configSkyKeys); + EvaluationResult configsResult = evaluateSkyKeys(eventHandler, configSkyKeys); for (Dependency key : keys) { if (!depsToEvaluate.contains(key) || labelsWithErrors.contains(key.getLabel())) { continue; @@ -1242,7 +1246,8 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { /** * Evaluates the given sky keys, blocks, and returns their evaluation results. */ - private EvaluationResult evaluateSkyKeys(final Iterable skyKeys) { + private EvaluationResult evaluateSkyKeys( + final EventHandler eventHandler, final Iterable skyKeys) { EvaluationResult result; try { result = callUninterruptibly(new Callable>() { @@ -1251,7 +1256,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { synchronized (valueLookupLock) { try { skyframeBuildView.enableAnalysis(true); - return buildDriver.evaluate(skyKeys, false, DEFAULT_THREAD_COUNT, errorEventListener); + return buildDriver.evaluate(skyKeys, false, DEFAULT_THREAD_COUNT, eventHandler); } finally { skyframeBuildView.enableAnalysis(false); } @@ -1287,13 +1292,16 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { @VisibleForTesting @Nullable public ConfiguredTarget getConfiguredTargetForTesting( - Label label, BuildConfiguration configuration) { + EventHandler eventHandler, Label label, BuildConfiguration configuration) { if (memoizingEvaluator.getExistingValueForTesting( PrecomputedValue.WORKSPACE_STATUS_KEY.getKeyForTesting()) == null) { injectWorkspaceStatusData(); } return Iterables.getFirst( - getConfiguredTargets(configuration, ImmutableList.of(new Dependency(label, configuration)), + getConfiguredTargets( + eventHandler, + configuration, + ImmutableList.of(new Dependency(label, configuration)), true), null); } -- cgit v1.2.3