diff options
Diffstat (limited to 'src/main/java/com')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java | 12 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java | 5 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java index 42cbc43ed3..cd4e86ddad 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java @@ -403,6 +403,18 @@ public class BuildRequestOptions extends OptionsBase { ) public boolean keepStateAfterBuild; + @Option( + name = "discard_actions_after_execution", + defaultValue = "true", + documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, + metadataTags = OptionMetadataTag.INCOMPATIBLE_CHANGE, + effectTags = {OptionEffectTag.LOSES_INCREMENTAL_STATE}, + help = + "If true, Blaze will clear actions from memory after it executes them. Has no effect " + + "unless --notrack_incremental_state is also specified. Do not use unless instructed" + + " by the Blaze team.") + public boolean discardActionsAfterExecution; + /** Converter for jobs: [0, MAX_JOBS] or "auto". */ public static class JobsConverter extends RangeConverter { /** 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 e63ae0913d..aaeed3f73f 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 @@ -612,12 +612,15 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor { } } + removeActionsAfterEvaluation.set( + !trackIncrementalState + && requestOptions != null + && requestOptions.discardActionsAfterExecution); // Now check if it is necessary to wipe the previous state. We do this if either the previous // or current incrementalStateRetentionStrategy requires the build to have been isolated. if (oldValueOfTrackIncrementalState != trackIncrementalState) { logger.info("Set incremental state to " + trackIncrementalState); evaluatorNeedsReset = true; - removeActionsAfterEvaluation.set(!trackIncrementalState); } else if (!trackIncrementalState) { evaluatorNeedsReset = true; } |