aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/shell
diff options
context:
space:
mode:
authorGravatar Nathan Harmata <nharmata@google.com>2015-08-25 18:15:15 +0000
committerGravatar Lukacs Berki <lberki@google.com>2015-08-26 07:40:28 +0000
commit8e17c85ba66b2da92e029464b6b2481c64e2e78b (patch)
treeafe391b69cd96408ea14771483a6e4a5f74a5fc3 /src/main/java/com/google/devtools/build/lib/shell
parent9c2989d009294f8ffe9de15b09ceab15012552d6 (diff)
Get rid of unnecessary synchronization. This is a contention point when we have lots of threads.
-- MOS_MIGRATED_REVID=101485204
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/shell')
-rw-r--r--src/main/java/com/google/devtools/build/lib/shell/Consumers.java9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/shell/Consumers.java b/src/main/java/com/google/devtools/build/lib/shell/Consumers.java
index 3ed5b7e5ae..2e548f6944 100644
--- a/src/main/java/com/google/devtools/build/lib/shell/Consumers.java
+++ b/src/main/java/com/google/devtools/build/lib/shell/Consumers.java
@@ -23,6 +23,7 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -274,18 +275,14 @@ class Consumers {
private static final int THREAD_STACK_SIZE = 32 * 1024;
- private static int threadInitNumber;
-
- private static synchronized int nextThreadNum() {
- return threadInitNumber++;
- }
+ private static AtomicInteger threadInitNumber = new AtomicInteger(0);
@Override
public Thread newThread(final Runnable runnable) {
final Thread t =
new Thread(null,
runnable,
- "Command-Accumulator-Thread-" + nextThreadNum(),
+ "Command-Accumulator-Thread-" + threadInitNumber.getAndIncrement(),
THREAD_STACK_SIZE);
// Don't let this thread hold up JVM exit
t.setDaemon(true);