From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 30 Apr 2016 04:19:14 -0400 Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates --- src/main/java/com/gitblit/utils/WorkQueue.java | 44 ++++++++++++++++++++++++++------------------ 1 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/gitblit/utils/WorkQueue.java b/src/main/java/com/gitblit/utils/WorkQueue.java index 778e754..ce89d69 100644 --- a/src/main/java/com/gitblit/utils/WorkQueue.java +++ b/src/main/java/com/gitblit/utils/WorkQueue.java @@ -14,11 +14,6 @@ package com.gitblit.utils; -import com.google.common.collect.Lists; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.lang.Thread.UncaughtExceptionHandler; import java.util.ArrayList; import java.util.Collection; @@ -38,7 +33,10 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import javax.inject.Inject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.collect.Lists; /** Delayed execution of tasks using a background thread pool. */ public class WorkQueue { @@ -53,18 +51,19 @@ private Executor defaultQueue; private final IdGenerator idGenerator; + private final int defaultQueueSize; private final CopyOnWriteArrayList<Executor> queues; - @Inject - public WorkQueue(final IdGenerator idGenerator) { + public WorkQueue(final IdGenerator idGenerator, final int defaultQueueSize) { this.idGenerator = idGenerator; + this.defaultQueueSize = defaultQueueSize; this.queues = new CopyOnWriteArrayList<Executor>(); } /** Get the default work queue, for miscellaneous tasks. */ public synchronized Executor getDefaultQueue() { if (defaultQueue == null) { - defaultQueue = createQueue(1, "WorkQueue"); + defaultQueue = createQueue(defaultQueueSize, "WorkQueue"); } return defaultQueue; } @@ -268,7 +267,8 @@ return startTime; } - public boolean cancel(boolean mayInterruptIfRunning) { + @Override + public boolean cancel(boolean mayInterruptIfRunning) { if (task.cancel(mayInterruptIfRunning)) { // Tiny abuse of running: if the task needs to know it was // canceled (to clean up resources) and it hasn't started @@ -289,36 +289,44 @@ } } - public int compareTo(Delayed o) { + @Override + public int compareTo(Delayed o) { return task.compareTo(o); } - public V get() throws InterruptedException, ExecutionException { + @Override + public V get() throws InterruptedException, ExecutionException { return task.get(); } - public V get(long timeout, TimeUnit unit) throws InterruptedException, + @Override + public V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { return task.get(timeout, unit); } - public long getDelay(TimeUnit unit) { + @Override + public long getDelay(TimeUnit unit) { return task.getDelay(unit); } - public boolean isCancelled() { + @Override + public boolean isCancelled() { return task.isCancelled(); } - public boolean isDone() { + @Override + public boolean isDone() { return task.isDone(); } - public boolean isPeriodic() { + @Override + public boolean isPeriodic() { return task.isPeriodic(); } - public void run() { + @Override + public void run() { if (running.compareAndSet(false, true)) { try { task.run(); -- Gitblit v1.9.1