public EventCountingQueueProcessor(
     BlockingCollection<long> blockingQueue, PaddedLong[] counters, int index)
 {
     _blockingQueue = blockingQueue;
     _counters = counters;
     _index = index;
 }
        public OneToThreeWorkerPoolThroughputTest()
        {
            for (var i = 0; i < _numWorkers; i++)
            {
                _counters[i] = new PaddedLong();
            }

            for (var i = 0; i < _numWorkers; i++)
            {
                _queueWorkers[i] = new EventCountingQueueProcessor(_blockingQueue, _counters, i);
            }
            for (var i = 0; i < _numWorkers; i++)
            {
                _handlers[i] = new EventCountingWorkHandler(_counters, i);
            }

            _workerPool = new WorkerPool<ValueEvent>(_ringBuffer,
                                                     _ringBuffer.NewBarrier(),
                                                     new FatalExceptionHandler(),
                                                     _handlers);

            _ringBuffer.AddGatingSequences(_workerPool.GetWorkerSequences());
        }