diff options
author | Nathan Harmata <nharmata@google.com> | 2015-08-25 18:15:15 +0000 |
---|---|---|
committer | Lukacs Berki <lberki@google.com> | 2015-08-26 07:40:28 +0000 |
commit | 8e17c85ba66b2da92e029464b6b2481c64e2e78b (patch) | |
tree | afe391b69cd96408ea14771483a6e4a5f74a5fc3 /src/main/java/com/google/devtools/build/lib/shell | |
parent | 9c2989d009294f8ffe9de15b09ceab15012552d6 (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.java | 9 |
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); |