View Javadoc
1   package com.atlassian.event.internal;
2   
3   import com.atlassian.event.config.EventThreadPoolConfiguration;
4   
5   import java.util.concurrent.BlockingQueue;
6   import java.util.concurrent.Executor;
7   import java.util.concurrent.LinkedBlockingQueue;
8   import java.util.concurrent.ThreadPoolExecutor;
9   
10  /**
11   * <p>Uses a {@link LinkedBlockingQueue} to hand off tasks to the {@link Executor}. Will cause new tasks to wait in the queue when all threads are busy.</p>
12   *
13   * <p>See {@link ThreadPoolExecutor} for more information.</p>
14   *
15   * @since 2.1
16   */
17  public class UnboundedEventExecutorFactory extends AbstractEventExecutorFactory {
18      public UnboundedEventExecutorFactory(final EventThreadPoolConfiguration configuration, final EventThreadFactory eventThreadFactory) {
19          super(configuration, eventThreadFactory);
20      }
21  
22      public UnboundedEventExecutorFactory(final EventThreadPoolConfiguration configuration) {
23          super(configuration);
24      }
25  
26      @Override
27      protected BlockingQueue<Runnable> getQueue() {
28          return new LinkedBlockingQueue<Runnable>();
29      }
30  }