protected AbstractMultiThreadDispatcher(int numberThreads, int backlog) { this.backlog = backlog; this.numberThreads = numberThreads; this.taskFactory = new BatchFactorySupplier<MultiThreadTask>( backlog, new Supplier<MultiThreadTask>() { @Override public MultiThreadTask get() { return new MultiThreadTask(); } } ); this.recursiveTasks = BlockingQueueFactory.createQueue(); }
protected AbstractTcpConnection(Environment env, Codec<Buffer, IN, OUT> codec, Dispatcher ioDispatcher, Dispatcher eventsDispatcher) { this.env = env; this.ioDispatcher = ioDispatcher; this.ioReactor = Reactors.reactor(env, ioDispatcher); this.eventsReactor = Reactors.reactor(env, eventsDispatcher); if(null != codec) { this.decoder = codec.decoder(new NotifyConsumer<IN>(read.getT2(), eventsReactor)); this.encoder = codec.encoder(); } else { this.decoder = null; this.encoder = null; } this.replyToKeys = BlockingQueueFactory.createQueue(); consume(new Consumer<IN>() { @Override public void accept(IN in) { try { AbstractTcpConnection.this.eventsReactor.notify(replyToKeys.remove(), Event.wrap(in)); } catch(NoSuchElementException ignored) { } } }); }
this.encoder = null; this.replyToKeys = BlockingQueueFactory.createQueue();