Skip to content

Commit 70f7c80

Browse files
justinhorvitzcopybara-github
authored andcommitted
Use SkyKeyInterner for more SkyKey types.
PiperOrigin-RevId: 579840409 Change-Id: I67eeea72f2bb935581f6f7afe71f0b72fb6f4c1a
1 parent e1df5cd commit 70f7c80

7 files changed

Lines changed: 52 additions & 25 deletions

File tree

src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@
1616
import com.google.common.annotations.VisibleForTesting;
1717
import com.google.common.base.MoreObjects;
1818
import com.google.common.collect.ImmutableList;
19-
import com.google.common.collect.Interner;
2019
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
2120
import com.google.devtools.build.lib.actions.ActionLookupKey;
2221
import com.google.devtools.build.lib.actions.BasicActionLookupValue;
2322
import com.google.devtools.build.lib.cmdline.Label;
24-
import com.google.devtools.build.lib.concurrent.BlazeInterners;
2523
import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
2624
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
2725
import com.google.devtools.build.skyframe.SkyFunctionName;
26+
import com.google.devtools.build.skyframe.SkyKey;
2827

2928
/** Value that stores expanded actions from ActionTemplate. */
3029
public final class ActionTemplateExpansionValue extends BasicActionLookupValue {
@@ -40,8 +39,7 @@ public static ActionTemplateExpansionKey key(ActionLookupKey actionLookupKey, in
4039
/** Key for {@link ActionTemplateExpansionValue} nodes. */
4140
@AutoCodec
4241
public static final class ActionTemplateExpansionKey implements ActionLookupKey {
43-
private static final Interner<ActionTemplateExpansionKey> interner =
44-
BlazeInterners.newWeakInterner();
42+
private static final SkyKeyInterner<ActionTemplateExpansionKey> interner = SkyKey.newInterner();
4543

4644
private final ActionLookupKey actionLookupKey;
4745
private final int actionIndex;
@@ -84,6 +82,11 @@ public int getActionIndex() {
8482
return actionIndex;
8583
}
8684

85+
@Override
86+
public SkyKeyInterner<ActionTemplateExpansionKey> getSkyKeyInterner() {
87+
return interner;
88+
}
89+
8790
@Override
8891
public int hashCode() {
8992
return 37 * actionLookupKey.hashCode() + actionIndex;

src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import com.google.common.base.MoreObjects;
1919
import com.google.common.base.Preconditions;
2020
import com.google.common.collect.ImmutableList;
21-
import com.google.common.collect.Interner;
2221
import com.google.devtools.build.lib.actions.Action;
2322
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
2423
import com.google.devtools.build.lib.actions.ActionExecutionException;
@@ -36,7 +35,6 @@
3635
import com.google.devtools.build.lib.actions.FilesetTraversalParams.PackageBoundaryMode;
3736
import com.google.devtools.build.lib.bugreport.BugReport;
3837
import com.google.devtools.build.lib.cmdline.Label;
39-
import com.google.devtools.build.lib.concurrent.BlazeInterners;
4038
import com.google.devtools.build.lib.events.Event;
4139
import com.google.devtools.build.lib.server.FailureDetails.Execution;
4240
import com.google.devtools.build.lib.server.FailureDetails.Execution.Code;
@@ -589,8 +587,8 @@ public DetailedExitCode getDetailedExitCode() {
589587

590588
private static final class DirectoryArtifactTraversalRequest extends TraversalRequest {
591589

592-
private static final Interner<DirectoryArtifactTraversalRequest> interner =
593-
BlazeInterners.newWeakInterner();
590+
private static final SkyKeyInterner<DirectoryArtifactTraversalRequest> interner =
591+
SkyKey.newInterner();
594592

595593
static DirectoryArtifactTraversalRequest create(
596594
DirectTraversalRoot root, boolean skipTestingForSubpackage, Artifact artifact) {
@@ -650,6 +648,11 @@ protected TraversalRequest duplicateWithOverrides(
650648
return create(newRoot, newSkipTestingForSubpackage, artifact);
651649
}
652650

651+
@Override
652+
public SkyKeyInterner<DirectoryArtifactTraversalRequest> getSkyKeyInterner() {
653+
return interner;
654+
}
655+
653656
@Override
654657
public int hashCode() {
655658
// Artifact is only for error info and not considered in hash code or equality.

src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@
1717
import com.google.common.base.Preconditions;
1818
import com.google.common.collect.ImmutableMap;
1919
import com.google.common.collect.ImmutableSet;
20-
import com.google.common.collect.Interner;
2120
import com.google.devtools.build.lib.cmdline.RepositoryName;
22-
import com.google.devtools.build.lib.concurrent.BlazeInterners;
2321
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
2422
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
2523
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
@@ -239,7 +237,7 @@ public static SkyKey key(
239237
@AutoCodec.VisibleForSerialization
240238
@AutoCodec
241239
static class Key extends RecursivePkgSkyKey {
242-
private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
240+
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
243241

244242
private Key(
245243
RepositoryName repositoryName,
@@ -261,5 +259,10 @@ static Key create(
261259
public SkyFunctionName functionName() {
262260
return SkyFunctions.COLLECT_PACKAGES_UNDER_DIRECTORY;
263261
}
262+
263+
@Override
264+
public SkyKeyInterner<Key> getSkyKeyInterner() {
265+
return interner;
266+
}
264267
}
265268
}

src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
import com.google.common.base.MoreObjects;
1717
import com.google.common.base.Preconditions;
1818
import com.google.common.collect.ImmutableList;
19-
import com.google.common.collect.Interner;
20-
import com.google.devtools.build.lib.concurrent.BlazeInterners;
2119
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
2220
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
2321
import com.google.devtools.build.lib.query2.common.UniverseSkyKey;
@@ -65,8 +63,7 @@ public static TargetPatternSequence key(ImmutableList<String> patterns, PathFrag
6563
@AutoCodec.VisibleForSerialization
6664
@AutoCodec
6765
static class TargetPatternSequence implements UniverseSkyKey {
68-
private static final Interner<TargetPatternSequence> interner =
69-
BlazeInterners.newWeakInterner();
66+
private static final SkyKeyInterner<TargetPatternSequence> interner = SkyKey.newInterner();
7067

7168
private final ImmutableList<String> patterns;
7269
private final PathFragment offset;
@@ -91,6 +88,11 @@ public PathFragment getOffset() {
9188
return offset;
9289
}
9390

91+
@Override
92+
public SkyKeyInterner<TargetPatternSequence> getSkyKeyInterner() {
93+
return interner;
94+
}
95+
9496
@Override
9597
public boolean equals(Object o) {
9698
if (this == o) {

src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,18 @@
1414
package com.google.devtools.build.lib.skyframe;
1515

1616
import com.google.common.collect.ImmutableSet;
17-
import com.google.common.collect.Interner;
1817
import com.google.devtools.build.lib.cmdline.RepositoryName;
1918
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
2019
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
2120
import com.google.devtools.build.lib.collect.nestedset.Order;
22-
import com.google.devtools.build.lib.concurrent.BlazeInterners;
2321
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
2422
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
2523
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
2624
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
2725
import com.google.devtools.build.lib.vfs.PathFragment;
2826
import com.google.devtools.build.lib.vfs.RootedPath;
2927
import com.google.devtools.build.skyframe.SkyFunctionName;
28+
import com.google.devtools.build.skyframe.SkyKey;
3029
import com.google.devtools.build.skyframe.SkyValue;
3130

3231
/**
@@ -75,7 +74,7 @@ public boolean hasErrors() {
7574
@AutoCodec.VisibleForSerialization
7675
@AutoCodec
7776
static class Key extends RecursivePkgSkyKey {
78-
private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
77+
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
7978

8079
private Key(
8180
RepositoryName repositoryName,
@@ -97,5 +96,10 @@ static Key create(
9796
public SkyFunctionName functionName() {
9897
return SkyFunctions.RECURSIVE_PKG;
9998
}
99+
100+
@Override
101+
public SkyKeyInterner<Key> getSkyKeyInterner() {
102+
return interner;
103+
}
100104
}
101105
}

src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,9 @@
1414
package com.google.devtools.build.lib.skyframe;
1515

1616
import com.google.auto.value.AutoValue;
17-
import com.google.common.collect.Interner;
1817
import com.google.common.collect.Iterables;
1918
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
2019
import com.google.devtools.build.lib.analysis.TopLevelArtifactContext;
21-
import com.google.devtools.build.lib.concurrent.BlazeInterners;
2220
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
2321
import com.google.devtools.build.skyframe.SkyFunctionName;
2422
import com.google.devtools.build.skyframe.SkyKey;
@@ -58,7 +56,7 @@ public static Iterable<SkyKey> keys(
5856
@AutoCodec
5957
@AutoValue
6058
public abstract static class TestCompletionKey implements SkyKey {
61-
private static final Interner<TestCompletionKey> interner = BlazeInterners.newWeakInterner();
59+
private static final SkyKeyInterner<TestCompletionKey> interner = SkyKey.newInterner();
6260

6361
@AutoCodec.VisibleForSerialization
6462
@AutoCodec.Instantiator
@@ -85,5 +83,10 @@ public final SkyFunctionName functionName() {
8583
public final boolean valueIsShareable() {
8684
return false;
8785
}
86+
87+
@Override
88+
public final SkyKeyInterner<TestCompletionKey> getSkyKeyInterner() {
89+
return interner;
90+
}
8891
}
8992
}

src/test/java/com/google/devtools/build/skyframe/GraphTester.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@
1919
import com.google.common.collect.ImmutableList;
2020
import com.google.common.collect.ImmutableMap;
2121
import com.google.common.collect.ImmutableSet;
22-
import com.google.common.collect.Interner;
2322
import com.google.common.collect.Iterables;
24-
import com.google.devtools.build.lib.concurrent.BlazeInterners;
2523
import com.google.devtools.build.lib.events.Event;
2624
import com.google.devtools.build.lib.events.ExtendedEventHandler.Postable;
2725
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
2826
import com.google.devtools.build.lib.util.Pair;
2927
import com.google.devtools.build.skyframe.SkyFunctionException.Transience;
28+
import com.google.devtools.build.skyframe.SkyKey.SkyKeyInterner;
3029
import com.google.devtools.build.skyframe.SkyframeLookupResult.QueryDepCallback;
3130
import com.google.errorprone.annotations.CanIgnoreReturnValue;
3231
import java.util.HashMap;
@@ -512,7 +511,7 @@ public static ValueComputer formatter(SkyKey key, String format) {
512511
@AutoCodec.VisibleForSerialization
513512
@AutoCodec
514513
static class Key extends AbstractSkyKey<String> {
515-
private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
514+
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
516515

517516
private Key(String arg) {
518517
super(arg);
@@ -528,12 +527,17 @@ static Key create(String arg) {
528527
public SkyFunctionName functionName() {
529528
return SkyFunctionName.FOR_TESTING;
530529
}
530+
531+
@Override
532+
public SkyKeyInterner<Key> getSkyKeyInterner() {
533+
return interner;
534+
}
531535
}
532536

533537
@AutoCodec.VisibleForSerialization
534538
@AutoCodec
535539
static class NonHermeticKey extends AbstractSkyKey<String> {
536-
private static final Interner<NonHermeticKey> interner = BlazeInterners.newWeakInterner();
540+
private static final SkyKeyInterner<NonHermeticKey> interner = SkyKey.newInterner();
537541

538542
private NonHermeticKey(String arg) {
539543
super(arg);
@@ -549,6 +553,11 @@ static NonHermeticKey create(String arg) {
549553
public SkyFunctionName functionName() {
550554
return FOR_TESTING_NONHERMETIC;
551555
}
556+
557+
@Override
558+
public SkyKeyInterner<NonHermeticKey> getSkyKeyInterner() {
559+
return interner;
560+
}
552561
}
553562

554563
private static final SkyFunctionName FOR_TESTING_NONHERMETIC =

0 commit comments

Comments
 (0)