aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java5
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;
}