aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
diff options
context:
space:
mode:
authorGravatar Mark Schaller <mschaller@google.com>2015-11-16 21:57:59 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-11-17 10:51:11 +0000
commitb11c8880f254946fb5527821f162aa076599cb10 (patch)
treec1f07e84e27f658cf314889c7b62f3b7debf741d /src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
parent4662a89901246d8354c0e6777fa59afe39a3199b (diff)
Improve concurrency level in invalidation sets
-- MOS_MIGRATED_REVID=107974602
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java')
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java b/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
index 2a9072ec85..676b5374d4 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
@@ -28,8 +28,10 @@ import com.google.devtools.build.lib.concurrent.QuiescingExecutor;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.util.Pair;
+import java.util.Collections;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ForkJoinPool;
@@ -188,7 +190,11 @@ public abstract class InvalidatingNodeVisitor<TGraph extends ThinNodeQueryableGr
* interrupt comes in.
*/
static class InvalidationState {
- private final Set<Pair<SkyKey, InvalidationType>> pendingValues = Sets.newConcurrentHashSet();
+
+ private final Set<Pair<SkyKey, InvalidationType>> pendingValues =
+ Collections.newSetFromMap(
+ new ConcurrentHashMap<Pair<SkyKey, InvalidationType>, Boolean>(
+ DEFAULT_THREAD_COUNT, .75f, DEFAULT_THREAD_COUNT));
private final InvalidationType defaultUpdateType;
private InvalidationState(InvalidationType defaultUpdateType) {
@@ -322,7 +328,10 @@ public abstract class InvalidatingNodeVisitor<TGraph extends ThinNodeQueryableGr
*/
static class DirtyingNodeVisitor extends InvalidatingNodeVisitor<ThinNodeQueryableGraph> {
- private final Set<Pair<SkyKey, InvalidationType>> visited = Sets.newConcurrentHashSet();
+ private final Set<Pair<SkyKey, InvalidationType>> visited =
+ Collections.newSetFromMap(
+ new ConcurrentHashMap<Pair<SkyKey, InvalidationType>, Boolean>(
+ DEFAULT_THREAD_COUNT, .75f, DEFAULT_THREAD_COUNT));
protected DirtyingNodeVisitor(
ThinNodeQueryableGraph graph,