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 Thread
private static final long
private static final long
protected final E[]
private long
protected final long
Fields 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, b177
Fields inherited from class org.jctools.queues.MpscBlockingConsumerArrayQueueColdProducerFields
producerBuffer, producerMask
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) final long
(package private) final Thread
final long
(package private) final void
This field should only be written to from the consumer thread.(package private) final void
soConsumerIndex
(long newValue) Methods inherited from class org.jctools.queues.MpscBlockingConsumerArrayQueueProducerFields
casProducerIndex, lvProducerIndex, soProducerIndex
Methods inherited from class org.jctools.queues.MpscBlockingConsumerArrayQueueColdProducerFields
casProducerLimit, lvProducerLimit, soProducerLimit
Methods inherited from class java.util.AbstractCollection
contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArray
Methods 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
-