From 9c1a6a012eeb655a16d5c932bcf98c2aa2d264d1 Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Mon, 7 May 2018 21:01:13 +0900 Subject: [PATCH] WorkQueue: Don't lazy-initialize the default queue The default queue is used in several places and is initialized during the server start-up, so the lazy initialization doesn't win much. Moving the initialization into the constructor means we can mark the queue as final, and don't need to keep the default queue size value as a member. The getDefaultQueue no longer needs to be synchronized, since there is no longer any chance of racing to create the queue. Change-Id: Ib880e3b9caf79718865944ec88c3337d0080e2c3 --- .../java/com/google/gerrit/server/git/WorkQueue.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/WorkQueue.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/WorkQueue.java index 802645d63c..40ebc6661e 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/WorkQueue.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/WorkQueue.java @@ -82,8 +82,7 @@ public class WorkQueue { } }; - private Executor defaultQueue; - private final int defaultQueueSize; + private final Executor defaultQueue; private final IdGenerator idGenerator; private final CopyOnWriteArrayList queues; @@ -96,14 +95,11 @@ public class WorkQueue { public WorkQueue(IdGenerator idGenerator, int defaultThreadPoolSize) { this.idGenerator = idGenerator; this.queues = new CopyOnWriteArrayList<>(); - this.defaultQueueSize = defaultThreadPoolSize; + this.defaultQueue = createQueue(defaultThreadPoolSize, "WorkQueue"); } /** Get the default work queue, for miscellaneous tasks. */ - public synchronized Executor getDefaultQueue() { - if (defaultQueue == null) { - defaultQueue = createQueue(defaultQueueSize, "WorkQueue"); - } + public Executor getDefaultQueue() { return defaultQueue; }