diff options
author | 2017-08-11 23:19:48 +0200 | |
---|---|---|
committer | 2017-08-14 14:16:00 +0200 | |
commit | 9274cba2540d1d1c7824147f1d999ac785eeed85 (patch) | |
tree | 8b7a6bf0409162ffbc1999bff8f2aa932ab23fae /src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java | |
parent | 95f7fba8394644623d121fc6765356d46dbd043b (diff) |
Introduce a new SpawnCache API; add a RemoteSpawnCache implementation
AbstractSpawnRunner now uses a SpawnCache if one is registered, this allows
adding caching to any spawn runner without having to be aware of the
implementations.
I will delete the old CachedLocalSpawnRunner in a follow-up CL.
PiperOrigin-RevId: 165024382
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java index 8424fca0c2..826de367c8 100644 --- a/src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java +++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java @@ -37,8 +37,6 @@ final class RemoteActionContextProvider extends ActionContextProvider { private final RemoteActionCache cache; private final GrpcRemoteExecutor executor; - private RemoteSpawnRunner spawnRunner; - RemoteActionContextProvider(CommandEnvironment env, @Nullable RemoteActionCache cache, @Nullable GrpcRemoteExecutor executor) { this.env = env; @@ -52,14 +50,19 @@ final class RemoteActionContextProvider extends ActionContextProvider { checkNotNull(env.getOptions().getOptions(ExecutionOptions.class)); RemoteOptions remoteOptions = checkNotNull(env.getOptions().getOptions(RemoteOptions.class)); - spawnRunner = new RemoteSpawnRunner( - env.getExecRoot(), - remoteOptions, - createFallbackRunner(env), - executionOptions.verboseFailures, - cache, - executor); - return ImmutableList.of(new RemoteSpawnStrategy(spawnRunner)); + if (remoteOptions.experimentalRemoteSpawnCache) { + RemoteSpawnCache spawnCache = new RemoteSpawnCache(env.getExecRoot(), remoteOptions, cache); + return ImmutableList.of(spawnCache); + } else { + RemoteSpawnRunner spawnRunner = new RemoteSpawnRunner( + env.getExecRoot(), + remoteOptions, + createFallbackRunner(env), + executionOptions.verboseFailures, + cache, + executor); + return ImmutableList.of(new RemoteSpawnStrategy(spawnRunner)); + } } private static SpawnRunner createFallbackRunner(CommandEnvironment env) { @@ -79,9 +82,8 @@ final class RemoteActionContextProvider extends ActionContextProvider { @Override public void executionPhaseEnding() { - if (spawnRunner != null) { - spawnRunner.close(); + if (cache != null) { + cache.close(); } - spawnRunner = null; } } |