diff --git a/src/main/java/org/jboss/netty/channel/socket/nio/NioClientSocketChannelFactory.java b/src/main/java/org/jboss/netty/channel/socket/nio/NioClientSocketChannelFactory.java index e77bfc8640..3711be7c81 100644 --- a/src/main/java/org/jboss/netty/channel/socket/nio/NioClientSocketChannelFactory.java +++ b/src/main/java/org/jboss/netty/channel/socket/nio/NioClientSocketChannelFactory.java @@ -85,36 +85,40 @@ import org.jboss.netty.util.internal.ExecutorUtil; */ public class NioClientSocketChannelFactory implements ClientSocketChannelFactory { + private static final int DEFAULT_BOSS_COUNT = 1; + private final Executor bossExecutor; private final Executor workerExecutor; private final NioClientSocketPipelineSink sink; - private static final int DEFAULT_BOSS_COUNT = 1; /** * Creates a new instance. Calling this constructor is same with calling - * {@link #NioClientSocketChannelFactory(Executor, Executor, int)} with 2 * - * the number of available processors in the machine. The number of + * {@link #NioClientSocketChannelFactory(Executor, Executor, int, int)} with + * 1 and (2 * the number of available processors in the machine) for + * bossCount and workerCount respectively. The number of * available processors is obtained by {@link Runtime#availableProcessors()}. * * @param bossExecutor * the {@link Executor} which will execute the boss thread * @param workerExecutor - * the {@link Executor} which will execute the I/O worker threads + * the {@link Executor} which will execute the worker threads */ public NioClientSocketChannelFactory( Executor bossExecutor, Executor workerExecutor) { - this(bossExecutor, workerExecutor, SelectorUtil.DEFAULT_IO_THREADS); + this(bossExecutor, workerExecutor, DEFAULT_BOSS_COUNT, SelectorUtil.DEFAULT_IO_THREADS); } /** - * Creates a new instance. + * Creates a new instance. Calling this constructor is same with calling + * {@link #NioClientSocketChannelFactory(Executor, Executor, int, int)} with + * 1 as bossCount. * * @param bossExecutor * the {@link Executor} which will execute the boss thread * @param workerExecutor - * the {@link Executor} which will execute the I/O worker threads + * the {@link Executor} which will execute the worker threads * @param workerCount - * the maximum number of I/O worker threads + * the maximum number of worker threads */ public NioClientSocketChannelFactory( Executor bossExecutor, Executor workerExecutor, @@ -132,7 +136,7 @@ public class NioClientSocketChannelFactory implements ClientSocketChannelFactory * @param bossCount * the maximum number of boss threads * @param workerCount - * the maximum number of I/O worker threads + * the maximum number of worker threads */ public NioClientSocketChannelFactory( Executor bossExecutor, Executor workerExecutor, @@ -157,7 +161,8 @@ public class NioClientSocketChannelFactory implements ClientSocketChannelFactory this.bossExecutor = bossExecutor; this.workerExecutor = workerExecutor; - sink = new NioClientSocketPipelineSink(bossExecutor, workerExecutor, bossCount, workerCount); + sink = new NioClientSocketPipelineSink( + bossExecutor, workerExecutor, bossCount, workerCount); } diff --git a/src/main/java/org/jboss/netty/channel/socket/nio/NioClientSocketPipelineSink.java b/src/main/java/org/jboss/netty/channel/socket/nio/NioClientSocketPipelineSink.java index 47b43098ce..9376768569 100644 --- a/src/main/java/org/jboss/netty/channel/socket/nio/NioClientSocketPipelineSink.java +++ b/src/main/java/org/jboss/netty/channel/socket/nio/NioClientSocketPipelineSink.java @@ -58,33 +58,29 @@ class NioClientSocketPipelineSink extends AbstractChannelSink { static final InternalLogger logger = InternalLoggerFactory.getInstance(NioClientSocketPipelineSink.class); - private static final int DEFAULT_BOSS_COUNT = 1; final Executor bossExecutor; - private final int numBosses; + private final Boss bosses[]; private final NioWorker[] workers; private final AtomicInteger bossIndex = new AtomicInteger(); private final AtomicInteger workerIndex = new AtomicInteger(); - NioClientSocketPipelineSink(Executor bossExecutor, Executor workerExecutor, int workerCount) { - this(bossExecutor, workerExecutor, DEFAULT_BOSS_COUNT, workerCount); - } - - NioClientSocketPipelineSink(Executor bossExecutor, Executor workerExecutor, int bossCount, int workerCount) { + NioClientSocketPipelineSink( + Executor bossExecutor, Executor workerExecutor, + int bossCount, int workerCount) { this.bossExecutor = bossExecutor; - this.numBosses = bossCount; - + + bosses = new Boss[bossCount]; + for (int i = 0; i < bosses.length; i ++) { + bosses[i] = new Boss(); + } + workers = new NioWorker[workerCount]; for (int i = 0; i < workers.length; i ++) { workers[i] = new NioWorker(workerExecutor); } - - bosses = new Boss[numBosses]; - for (int i = 0; i < numBosses; ++i) { - bosses[i] = new Boss(); - } } @Override