@Test(expected = IllegalArgumentException.class) public void checkLessThanMustFailIfArgumentIsGreaterThanExpected() { RangeUtil.checkLessThan(1, 0, "var"); }
@Test(expected = IllegalArgumentException.class) public void checkLessThanMustFailIfArgumentIsEqualToExpected() { final int n = 1; final int actual = RangeUtil.checkLessThan(1, 1, "var"); assertThat(actual, is(equalTo(n))); }
MpscChunkedAtomicArrayQueueColdProducerFields(int initialCapacity, int maxCapacity) { super(initialCapacity); RangeUtil.checkGreaterThanOrEqual(maxCapacity, 4, "maxCapacity"); RangeUtil.checkLessThan(roundToPowerOfTwo(initialCapacity), roundToPowerOfTwo(maxCapacity), "initialCapacity"); maxQueueCapacity = ((long) Pow2.roundToPowerOfTwo(maxCapacity)) << 1; } }
@Test public void checkLessThanMustPassIfArgumentIsLessThanExpected() { final int n = 0; final int actual = RangeUtil.checkLessThan(n, 1, "var"); assertThat(actual, is(equalTo(n))); }
MpscChunkedArrayQueueColdProducerFields(int initialCapacity, int maxCapacity) { super(initialCapacity); RangeUtil.checkGreaterThanOrEqual(maxCapacity, 4, "maxCapacity"); RangeUtil.checkLessThan(roundToPowerOfTwo(initialCapacity), roundToPowerOfTwo(maxCapacity), "initialCapacity"); maxQueueCapacity = ((long) Pow2.roundToPowerOfTwo(maxCapacity)) << 1; } }
public SpscChunkedArrayQueue(int chunkSize, int capacity) { RangeUtil.checkGreaterThanOrEqual(capacity, 16, "capacity"); // minimal chunk size of eight makes sure minimal lookahead step is 2 RangeUtil.checkGreaterThanOrEqual(chunkSize, 8, "chunkSize"); maxQueueCapacity = Pow2.roundToPowerOfTwo(capacity); int chunkCapacity = Pow2.roundToPowerOfTwo(chunkSize); RangeUtil.checkLessThan(chunkCapacity, maxQueueCapacity, "chunkCapacity"); long mask = chunkCapacity - 1; // need extra element to point at next array E[] buffer = allocate(chunkCapacity + 1); producerBuffer = buffer; producerMask = mask; consumerBuffer = buffer; consumerMask = mask; producerBufferLimit = mask - 1; // we know it's all empty to start with producerQueueLimit = maxQueueCapacity; }
public SpscChunkedAtomicArrayQueue(int chunkSize, int capacity) { RangeUtil.checkGreaterThanOrEqual(capacity, 16, "capacity"); // minimal chunk size of eight makes sure minimal lookahead step is 2 RangeUtil.checkGreaterThanOrEqual(chunkSize, 8, "chunkSize"); maxQueueCapacity = Pow2.roundToPowerOfTwo(capacity); int chunkCapacity = Pow2.roundToPowerOfTwo(chunkSize); RangeUtil.checkLessThan(chunkCapacity, maxQueueCapacity, "chunkCapacity"); long mask = chunkCapacity - 1; // need extra element to point at next array AtomicReferenceArray<E> buffer = allocate(chunkCapacity + 1); producerBuffer = buffer; producerMask = mask; consumerBuffer = buffer; consumerMask = mask; // we know it's all empty to start with producerBufferLimit = mask - 1; producerQueueLimit = maxQueueCapacity; }
public SpscGrowableArrayQueue(final int chunkSize, final int capacity) { RangeUtil.checkGreaterThanOrEqual(capacity, 16, "capacity"); // minimal chunk size of eight makes sure minimal lookahead step is 2 RangeUtil.checkGreaterThanOrEqual(chunkSize, 8, "chunkSize"); maxQueueCapacity = Pow2.roundToPowerOfTwo(capacity); int chunkCapacity = Pow2.roundToPowerOfTwo(chunkSize); RangeUtil.checkLessThan(chunkCapacity, maxQueueCapacity, "chunkCapacity"); long mask = chunkCapacity - 1; // need extra element to point at next array E[] buffer = allocate(chunkCapacity + 1); producerBuffer = buffer; producerMask = mask; consumerBuffer = buffer; consumerMask = mask; producerBufferLimit = mask - 1; // we know it's all empty to start with adjustLookAheadStep(chunkCapacity); }
public SpscGrowableAtomicArrayQueue(final int chunkSize, final int capacity) { RangeUtil.checkGreaterThanOrEqual(capacity, 16, "capacity"); // minimal chunk size of eight makes sure minimal lookahead step is 2 RangeUtil.checkGreaterThanOrEqual(chunkSize, 8, "chunkSize"); maxQueueCapacity = Pow2.roundToPowerOfTwo(capacity); int chunkCapacity = Pow2.roundToPowerOfTwo(chunkSize); RangeUtil.checkLessThan(chunkCapacity, maxQueueCapacity, "chunkCapacity"); long mask = chunkCapacity - 1; // need extra element to point at next array AtomicReferenceArray<E> buffer = allocate(chunkCapacity + 1); producerBuffer = buffer; producerMask = mask; consumerBuffer = buffer; consumerMask = mask; // we know it's all empty to start with producerBufferLimit = mask - 1; adjustLookAheadStep(chunkCapacity); }
MpscChunkedAtomicArrayQueueColdProducerFields(int initialCapacity, int maxCapacity) { super(initialCapacity); RangeUtil.checkGreaterThanOrEqual(maxCapacity, 4, "maxCapacity"); RangeUtil.checkLessThan(roundToPowerOfTwo(initialCapacity), roundToPowerOfTwo(maxCapacity), "initialCapacity"); maxQueueCapacity = ((long) Pow2.roundToPowerOfTwo(maxCapacity)) << 1; } }
MpscChunkedArrayQueueColdProducerFields(int initialCapacity, int maxCapacity) { super(initialCapacity); RangeUtil.checkGreaterThanOrEqual(maxCapacity, 4, "maxCapacity"); RangeUtil.checkLessThan(roundToPowerOfTwo(initialCapacity), roundToPowerOfTwo(maxCapacity), "initialCapacity"); maxQueueCapacity = ((long) Pow2.roundToPowerOfTwo(maxCapacity)) << 1; } }
public SpscChunkedArrayQueue(int chunkSize, int capacity) { RangeUtil.checkGreaterThanOrEqual(capacity, 16, "capacity"); // minimal chunk size of eight makes sure minimal lookahead step is 2 RangeUtil.checkGreaterThanOrEqual(chunkSize, 8, "chunkSize"); maxQueueCapacity = Pow2.roundToPowerOfTwo(capacity); int chunkCapacity = Pow2.roundToPowerOfTwo(chunkSize); RangeUtil.checkLessThan(chunkCapacity, maxQueueCapacity, "chunkCapacity"); long mask = chunkCapacity - 1; // need extra element to point at next array E[] buffer = allocate(chunkCapacity + 1); producerBuffer = buffer; producerMask = mask; consumerBuffer = buffer; consumerMask = mask; producerBufferLimit = mask - 1; // we know it's all empty to start with producerQueueLimit = maxQueueCapacity; }
public SpscChunkedAtomicArrayQueue(int chunkSize, int capacity) { RangeUtil.checkGreaterThanOrEqual(capacity, 16, "capacity"); // minimal chunk size of eight makes sure minimal lookahead step is 2 RangeUtil.checkGreaterThanOrEqual(chunkSize, 8, "chunkSize"); maxQueueCapacity = Pow2.roundToPowerOfTwo(capacity); int chunkCapacity = Pow2.roundToPowerOfTwo(chunkSize); RangeUtil.checkLessThan(chunkCapacity, maxQueueCapacity, "chunkCapacity"); long mask = chunkCapacity - 1; // need extra element to point at next array AtomicReferenceArray<E> buffer = allocate(chunkCapacity + 1); producerBuffer = buffer; producerMask = mask; consumerBuffer = buffer; consumerMask = mask; // we know it's all empty to start with producerBufferLimit = mask - 1; producerQueueLimit = maxQueueCapacity; }
public SpscGrowableAtomicArrayQueue(final int chunkSize, final int capacity) { RangeUtil.checkGreaterThanOrEqual(capacity, 16, "capacity"); // minimal chunk size of eight makes sure minimal lookahead step is 2 RangeUtil.checkGreaterThanOrEqual(chunkSize, 8, "chunkSize"); maxQueueCapacity = Pow2.roundToPowerOfTwo(capacity); int chunkCapacity = Pow2.roundToPowerOfTwo(chunkSize); RangeUtil.checkLessThan(chunkCapacity, maxQueueCapacity, "chunkCapacity"); long mask = chunkCapacity - 1; // need extra element to point at next array AtomicReferenceArray<E> buffer = allocate(chunkCapacity + 1); producerBuffer = buffer; producerMask = mask; consumerBuffer = buffer; consumerMask = mask; // we know it's all empty to start with producerBufferLimit = mask - 1; adjustLookAheadStep(chunkCapacity); }
public SpscGrowableArrayQueue(final int chunkSize, final int capacity) { RangeUtil.checkGreaterThanOrEqual(capacity, 16, "capacity"); // minimal chunk size of eight makes sure minimal lookahead step is 2 RangeUtil.checkGreaterThanOrEqual(chunkSize, 8, "chunkSize"); maxQueueCapacity = Pow2.roundToPowerOfTwo(capacity); int chunkCapacity = Pow2.roundToPowerOfTwo(chunkSize); RangeUtil.checkLessThan(chunkCapacity, maxQueueCapacity, "chunkCapacity"); long mask = chunkCapacity - 1; // need extra element to point at next array E[] buffer = allocate(chunkCapacity + 1); producerBuffer = buffer; producerMask = mask; consumerBuffer = buffer; consumerMask = mask; producerBufferLimit = mask - 1; // we know it's all empty to start with adjustLookAheadStep(chunkCapacity); }