public ThreeToThreeSequencedThroughputTest()
        {
            for (var i = 0; i < _numPublishers; i++)
            {
                _buffers[i] = RingBuffer<long[]>.CreateSingleProducer(() => new long[_arraySize], _bufferSize, new YieldingWaitStrategy());
                _barriers[i] = _buffers[i].NewBarrier();
                _valuePublishers[i] = ValuePublisher;
            }

            _batchEventProcessor = new MultiBufferBatchEventProcessor<long[]>(_buffers, _barriers, _handler);

            for (var i = 0; i < _numPublishers; i++)
            {
                _buffers[i].AddGatingSequences(_batchEventProcessor.GetSequences()[i]);
            }
        }
        public ThreeToThreeSequencedThroughputTest()
        {
            for (var i = 0; i < _numPublishers; i++)
            {
                _buffers[i] = RingBuffer <long[]> .CreateSingleProducer(() => new long[_arraySize], _bufferSize, new YieldingWaitStrategy());

                _barriers[i]        = _buffers[i].NewBarrier();
                _valuePublishers[i] = ValuePublisher;
            }

            _batchEventProcessor = new MultiBufferBatchEventProcessor <long[]>(_buffers, _barriers, _handler);

            for (var i = 0; i < _numPublishers; i++)
            {
                _buffers[i].AddGatingSequences(_batchEventProcessor.GetSequences()[i]);
            }
        }
 public ThreeToThreeSequencedThroughputTest() 
 :base(Test_Disruptor,ITERATIONS)
 {
     ThreadPool.SetMaxThreads (4,8);
     for (int i = 0; i < NUM_PUBLISHERS; i++)
     {
         buffers[i] = RingBuffer<long[]>.CreateSingleProducer(
         ()=>new long[ARRAY_SIZE]
         , BUFFER_SIZE
         , new YieldingWaitStrategy());
         barriers[i] = buffers[i].NewBarrier();
         valuePublishers[i] = new LongArrayPublisher(cyclicBarrier,
                                                buffers[i],
                                                ITERATIONS / NUM_PUBLISHERS,
                                                ARRAY_SIZE);  
     }
     batchEventProcessor = new MultiBufferBatchEventProcessor<long[]>(buffers, barriers, handler);
     for (int i = 0; i < NUM_PUBLISHERS; i++)
     {
         buffers[i].AddGatingSequences(batchEventProcessor.getSequences()[i]);
     }
 }
        public ThreeToThreeSequencedThroughputTest()
            : base(Test_Disruptor, ITERATIONS)
        {
            ThreadPool.SetMaxThreads(4, 8);
            for (int i = 0; i < NUM_PUBLISHERS; i++)
            {
                buffers[i] = RingBuffer <long[]> .CreateSingleProducer(
                    () => new long[ARRAY_SIZE]
                    , BUFFER_SIZE
                    , new YieldingWaitStrategy());

                barriers[i]        = buffers[i].NewBarrier();
                valuePublishers[i] = new LongArrayPublisher(cyclicBarrier,
                                                            buffers[i],
                                                            ITERATIONS / NUM_PUBLISHERS,
                                                            ARRAY_SIZE);
            }
            batchEventProcessor = new MultiBufferBatchEventProcessor <long[]>(buffers, barriers, handler);
            for (int i = 0; i < NUM_PUBLISHERS; i++)
            {
                buffers[i].AddGatingSequences(batchEventProcessor.getSequences()[i]);
            }
        }