Package org.jctools.queues
Class MpscBlockingConsumerArrayQueueConsumerFields<E>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<E>
org.jctools.queues.MpscBlockingConsumerArrayQueuePad1<E>
org.jctools.queues.MpscBlockingConsumerArrayQueueColdProducerFields<E>
org.jctools.queues.MpscBlockingConsumerArrayQueuePad2<E>
org.jctools.queues.MpscBlockingConsumerArrayQueueProducerFields<E>
org.jctools.queues.MpscBlockingConsumerArrayQueuePad3<E>
org.jctools.queues.MpscBlockingConsumerArrayQueueConsumerFields<E>
- All Implemented Interfaces:
Iterable<E>,Collection<E>,Queue<E>,IndexedQueueSizeUtil.IndexedQueue
- Direct Known Subclasses:
MpscBlockingConsumerArrayQueue
abstract class MpscBlockingConsumerArrayQueueConsumerFields<E>
extends MpscBlockingConsumerArrayQueuePad3<E>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Threadprivate static final longprivate static final longprotected final E[]private longprotected final longFields inherited from class org.jctools.queues.MpscBlockingConsumerArrayQueuePad3
b000, b001, b002, b003, b004, b005, b006, b007, b010, b011, b012, b013, b014, b015, b016, b017, b020, b021, b022, b023, b024, b025, b026, b027, b030, b031, b032, b033, b034, b035, b036, b037, b040, b041, b042, b043, b044, b045, b046, b047, b050, b051, b052, b053, b054, b055, b056, b057, b060, b061, b062, b063, b064, b065, b066, b067, b070, b071, b072, b073, b074, b075, b076, b077, b100, b101, b102, b103, b104, b105, b106, b107, b110, b111, b112, b113, b114, b115, b116, b117, b120, b121, b122, b123, b124, b125, b126, b127, b130, b131, b132, b133, b134, b135, b136, b137, b140, b141, b142, b143, b144, b145, b146, b147, b150, b151, b152, b153, b154, b155, b156, b157, b160, b161, b162, b163, b164, b165, b166, b167, b170, b171, b172, b173, b174, b175, b176, b177Fields inherited from class org.jctools.queues.MpscBlockingConsumerArrayQueueColdProducerFields
producerBuffer, producerMask -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) final long(package private) final Threadfinal long(package private) final voidThis field should only be written to from the consumer thread.(package private) final voidsoConsumerIndex(long newValue) Methods inherited from class org.jctools.queues.MpscBlockingConsumerArrayQueueProducerFields
casProducerIndex, lvProducerIndex, soProducerIndexMethods inherited from class org.jctools.queues.MpscBlockingConsumerArrayQueueColdProducerFields
casProducerLimit, lvProducerLimit, soProducerLimitMethods inherited from class java.util.AbstractCollection
contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Collection
contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArrayMethods inherited from interface org.jctools.queues.IndexedQueueSizeUtil.IndexedQueue
capacity
-
Field Details
-
C_INDEX_OFFSET
private static final long C_INDEX_OFFSET -
BLOCKED_OFFSET
private static final long BLOCKED_OFFSET -
consumerIndex
private volatile long consumerIndex -
consumerMask
protected final long consumerMask -
blocked
-
consumerBuffer
-
-
Constructor Details
-
MpscBlockingConsumerArrayQueueConsumerFields
MpscBlockingConsumerArrayQueueConsumerFields(long mask, E[] buffer)
-
-
Method Details
-
lvConsumerIndex
public final long lvConsumerIndex() -
lpConsumerIndex
final long lpConsumerIndex() -
soConsumerIndex
final void soConsumerIndex(long newValue) -
lvBlocked
-
soBlocked
This field should only be written to from the consumer thread. It is set before parking the consumer and nulled when the consumer is unblocked. The value is read by producer thread to unpark the consumer.- Parameters:
thread- the consumer thread which is blocked waiting for the producers
-