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:
java.lang.Iterable<E>
,java.util.Collection<E>
,java.util.Queue<E>
,IndexedQueueSizeUtil.IndexedQueue
- Direct Known Subclasses:
MpscBlockingConsumerArrayQueue
abstract class MpscBlockingConsumerArrayQueueConsumerFields<E> extends MpscBlockingConsumerArrayQueuePad3<E>
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Thread
blocked
private static long
BLOCKED_OFFSET
private static long
C_INDEX_OFFSET
protected E[]
consumerBuffer
private long
consumerIndex
protected long
consumerMask
-
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 Constructor Description MpscBlockingConsumerArrayQueueConsumerFields(long mask, E[] buffer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) long
lpConsumerIndex()
(package private) java.lang.Thread
lvBlocked()
long
lvConsumerIndex()
(package private) void
soBlocked(java.lang.Thread thread)
This field should only be written to from the consumer thread.(package private) 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 Detail
-
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
private volatile java.lang.Thread blocked
-
consumerBuffer
protected final E[] consumerBuffer
-
-
Constructor Detail
-
MpscBlockingConsumerArrayQueueConsumerFields
MpscBlockingConsumerArrayQueueConsumerFields(long mask, E[] buffer)
-
-
Method Detail
-
lvConsumerIndex
public final long lvConsumerIndex()
-
lpConsumerIndex
final long lpConsumerIndex()
-
soConsumerIndex
final void soConsumerIndex(long newValue)
-
lvBlocked
final java.lang.Thread lvBlocked()
-
soBlocked
final void soBlocked(java.lang.Thread thread)
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
-
-