aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2017-10-27 12:12:11 -0400
committerGravatar John Cater <jcater@google.com>2017-10-30 10:40:06 -0400
commitf903eb5ace7e4d9e72ca95f3e5fa39816be93a76 (patch)
tree3f5f33de008ecd0c82996a134fad2968146312e3 /src/main/java/com/google/devtools/build/lib/skyframe
parent4abd9434447e08c70266cc5583456816537718c3 (diff)
Thread FileSystem through to a single Path#delete call site.
This requires a fairly large amount of changes to fundamental objects like BlazeRuntime, Executor, and so on, as well as changing a lot of test code to thread the file system through. I expect future CLs to be much smaller. PiperOrigin-RevId: 173678144
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java3
5 files changed, 16 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
index fdddbd9192..364f9957b3 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
@@ -58,6 +58,7 @@ import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.util.ResourceUsage;
import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor;
import com.google.devtools.build.lib.vfs.BatchStat;
+import com.google.devtools.build.lib.vfs.FileSystem;
import com.google.devtools.build.lib.vfs.ModifiedFileSet;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -120,6 +121,7 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor {
private SequencedSkyframeExecutor(
EvaluatorSupplier evaluatorSupplier,
PackageFactory pkgFactory,
+ FileSystem fileSystem,
BlazeDirectories directories,
Factory workspaceStatusActionFactory,
ImmutableList<BuildInfoFactory> buildInfoFactories,
@@ -134,6 +136,7 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor {
super(
evaluatorSupplier,
pkgFactory,
+ fileSystem,
directories,
workspaceStatusActionFactory,
buildInfoFactories,
@@ -150,6 +153,7 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor {
public static SequencedSkyframeExecutor create(
PackageFactory pkgFactory,
+ FileSystem fileSystem,
BlazeDirectories directories,
Factory workspaceStatusActionFactory,
ImmutableList<BuildInfoFactory> buildInfoFactories,
@@ -165,6 +169,7 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor {
new SequencedSkyframeExecutor(
InMemoryMemoizingEvaluator.SUPPLIER,
pkgFactory,
+ fileSystem,
directories,
workspaceStatusActionFactory,
buildInfoFactories,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java
index fe1706d3bf..0b645fb34b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java
@@ -20,6 +20,7 @@ import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.WorkspaceStatusAction.Factory;
import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoFactory;
import com.google.devtools.build.lib.packages.PackageFactory;
+import com.google.devtools.build.lib.vfs.FileSystem;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -32,6 +33,7 @@ public class SequencedSkyframeExecutorFactory implements SkyframeExecutorFactory
@Override
public SkyframeExecutor create(
PackageFactory pkgFactory,
+ FileSystem fileSystem,
BlazeDirectories directories,
Factory workspaceStatusActionFactory,
ImmutableList<BuildInfoFactory> buildInfoFactories,
@@ -41,6 +43,7 @@ public class SequencedSkyframeExecutorFactory implements SkyframeExecutorFactory
Iterable<SkyValueDirtinessChecker> customDirtinessCheckers) {
return SequencedSkyframeExecutor.create(
pkgFactory,
+ fileSystem,
directories,
workspaceStatusActionFactory,
buildInfoFactories,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
index 9b0f1a5dda..622f1c3c4a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
@@ -781,7 +781,7 @@ public final class SkyframeActionExecutor implements ActionExecutionContextFacto
// Delete the outputs before executing the action, just to ensure that
// the action really does produce the outputs.
try {
- action.prepare(context.getExecRoot());
+ action.prepare(context.getFileSystem(), context.getExecRoot());
createOutputDirectories(action);
} catch (IOException e) {
reportError("failed to delete output files before executing action", e, action, null);
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 089fc65fdb..7145a1d23c 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
@@ -184,6 +184,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
new MemoizingEvaluator.EmittedEventState();
private final PackageFactory pkgFactory;
private final WorkspaceStatusAction.Factory workspaceStatusActionFactory;
+ private final FileSystem fileSystem;
private final BlazeDirectories directories;
protected final ExternalFilesHelper externalFilesHelper;
@Nullable protected OutputService outputService;
@@ -290,6 +291,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
protected SkyframeExecutor(
EvaluatorSupplier evaluatorSupplier,
PackageFactory pkgFactory,
+ FileSystem fileSystem,
BlazeDirectories directories,
Factory workspaceStatusActionFactory,
ImmutableList<BuildInfoFactory> buildInfoFactories,
@@ -311,6 +313,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
syscalls, cyclesReporter, pkgLocator, numPackagesLoaded, this);
this.resourceManager = ResourceManager.instance();
this.skyframeActionExecutor = new SkyframeActionExecutor(eventBus, statusReporterRef);
+ this.fileSystem = fileSystem;
this.directories = Preconditions.checkNotNull(directories);
ImmutableMap.Builder<BuildInfoKey, BuildInfoFactory> factoryMapBuilder = ImmutableMap.builder();
for (BuildInfoFactory factory : buildInfoFactories) {
@@ -1840,7 +1843,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
@VisibleForTesting
public FileSystem getFileSystemForTesting() {
- return directories.getFileSystem();
+ return fileSystem;
}
@VisibleForTesting
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java
index cce86103ca..246c6831bd 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java
@@ -21,6 +21,7 @@ import com.google.devtools.build.lib.analysis.WorkspaceStatusAction.Factory;
import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoFactory;
import com.google.devtools.build.lib.packages.PackageFactory;
import com.google.devtools.build.lib.util.AbruptExitException;
+import com.google.devtools.build.lib.vfs.FileSystem;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -35,6 +36,7 @@ public interface SkyframeExecutorFactory {
*
* @param tsgm timestamp granularity monitor
* @param pkgFactory the package factory
+ * @param fileSystem the Blaze file system
* @param directories Blaze directories
* @param workspaceStatusActionFactory a factory for creating WorkspaceStatusAction objects
* @param buildInfoFactories list of BuildInfoFactories
@@ -47,6 +49,7 @@ public interface SkyframeExecutorFactory {
*/
SkyframeExecutor create(
PackageFactory pkgFactory,
+ FileSystem fileSystem,
BlazeDirectories directories,
Factory workspaceStatusActionFactory,
ImmutableList<BuildInfoFactory> buildInfoFactories,