Skip navigation links
A B C E I L M N O P Q R S T U V W X 

A

add(E) - Method in class org.jctools.queues.MpscOnSpscQueue
 
addAll(Collection<? extends E>) - Method in class org.jctools.queues.MpscOnSpscQueue
 

B

buffer - Variable in class org.jctools.queues.ConcurrentCircularArrayQueue
 
BUFFER_PAD - Static variable in class org.jctools.queues.ConcurrentCircularArrayQueue
 

C

calcElementOffset(long) - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
 
calcSequenceOffset(long) - Method in class org.jctools.queues.ConcurrentSequencedCircularArrayQueue
 
capacity - Variable in class org.jctools.queues.ConcurrentCircularArrayQueue
 
capacity - Variable in class org.jctools.queues.spec.ConcurrentQueueSpec
 
clear() - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
 
clear() - Method in class org.jctools.queues.MpscOnSpscQueue
 
ConcurrentCircularArrayQueue<E> - Class in org.jctools.queues
A concurrent access enabling class used by circular array based queues this class exposes an offset computation method along with differently memory fenced load/store methods into the underlying array.
ConcurrentCircularArrayQueue(int) - Constructor for class org.jctools.queues.ConcurrentCircularArrayQueue
 
ConcurrentQueueSpec - Class in org.jctools.queues.spec
 
ConcurrentQueueSpec(int, int, int, Ordering, Preference) - Constructor for class org.jctools.queues.spec.ConcurrentQueueSpec
 
ConcurrentSequencedCircularArrayQueue<E> - Class in org.jctools.queues
 
ConcurrentSequencedCircularArrayQueue(int) - Constructor for class org.jctools.queues.ConcurrentSequencedCircularArrayQueue
 
consumers - Variable in class org.jctools.queues.spec.ConcurrentQueueSpec
 
contains(Object) - Method in class org.jctools.queues.MpscOnSpscQueue
 
containsAll(Collection<?>) - Method in class org.jctools.queues.MpscOnSpscQueue
 
createBoundedMpmc(int) - Static method in class org.jctools.queues.spec.ConcurrentQueueSpec
 
createBoundedMpsc(int) - Static method in class org.jctools.queues.spec.ConcurrentQueueSpec
 
createBoundedSpmc(int) - Static method in class org.jctools.queues.spec.ConcurrentQueueSpec
 
createBoundedSpsc(int) - Static method in class org.jctools.queues.spec.ConcurrentQueueSpec
 

E

element() - Method in class org.jctools.queues.MpscOnSpscQueue
 

I

isBounded() - Method in class org.jctools.queues.spec.ConcurrentQueueSpec
 
isEmpty() - Method in class org.jctools.queues.MpmcArrayQueue
 
isEmpty() - Method in class org.jctools.queues.MpscArrayQueue
 
isEmpty() - Method in class org.jctools.queues.MpscOnSpscQueue
 
isEmpty() - Method in class org.jctools.queues.SpmcArrayQueue
 
isMpmc() - Method in class org.jctools.queues.spec.ConcurrentQueueSpec
 
isMpsc() - Method in class org.jctools.queues.spec.ConcurrentQueueSpec
 
isPowerOfTwo(int) - Static method in class org.jctools.util.Pow2
Is this value a power of two.
isSpmc() - Method in class org.jctools.queues.spec.ConcurrentQueueSpec
 
isSpsc() - Method in class org.jctools.queues.spec.ConcurrentQueueSpec
 
iterator() - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
 
iterator() - Method in class org.jctools.queues.MpscCompoundQueue
 
iterator() - Method in class org.jctools.queues.MpscOnSpscQueue
 

L

lpElement(long) - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
A plain load (no ordering/fences) of an element from a given offset.
lpElement(E[], long) - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
A plain load (no ordering/fences) of an element from a given offset.
lvElement(long) - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
A volatile load (load + LoadLoad barrier) of an element from a given offset.
lvElement(E[], long) - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
A volatile load (load + LoadLoad barrier) of an element from a given offset.
lvSequence(long[], long) - Method in class org.jctools.queues.ConcurrentSequencedCircularArrayQueue
 

M

mask - Variable in class org.jctools.queues.ConcurrentCircularArrayQueue
 
MpmcArrayQueue<E> - Class in org.jctools.queues
A Multi-Producer-Multi-Consumer queue based on a ConcurrentCircularArrayQueue.
MpmcArrayQueue(int) - Constructor for class org.jctools.queues.MpmcArrayQueue
 
MpscArrayQueue<E> - Class in org.jctools.queues
A Multi-Producer-Single-Consumer queue based on a ConcurrentCircularArrayQueue.
MpscArrayQueue(int) - Constructor for class org.jctools.queues.MpscArrayQueue
 
MpscCompoundQueue<E> - Class in org.jctools.queues
 
MpscCompoundQueue(int) - Constructor for class org.jctools.queues.MpscCompoundQueue
 
MpscCompoundQueue(int, int) - Constructor for class org.jctools.queues.MpscCompoundQueue
 
MpscLinkedQueue7<E> - Class in org.jctools.queues
 
MpscLinkedQueue7() - Constructor for class org.jctools.queues.MpscLinkedQueue7
 
MpscLinkedQueue8<E> - Class in org.jctools.queues
 
MpscLinkedQueue8() - Constructor for class org.jctools.queues.MpscLinkedQueue8
 
MpscOnSpscQueue<E> - Class in org.jctools.queues
 
MpscOnSpscQueue(int) - Constructor for class org.jctools.queues.MpscOnSpscQueue
 

N

newQueue(ConcurrentQueueSpec) - Static method in class org.jctools.queues.QueueFactory
 

O

offer(E) - Method in class org.jctools.queues.MpmcArrayQueue
 
offer(E) - Method in class org.jctools.queues.MpscArrayQueue

IMPLEMENTATION NOTES:
Lock free offer using a single CAS.
offer(E) - Method in class org.jctools.queues.MpscCompoundQueue
 
offer(E) - Method in class org.jctools.queues.MpscOnSpscQueue
 
offer(E) - Method in class org.jctools.queues.SpmcArrayQueue
 
offer(E) - Method in class org.jctools.queues.SpscArrayQueue
offer(E) - Method in class org.jctools.queues.SpscLinkedQueue

IMPLEMENTATION NOTES:
Offer is allowed from a SINGLE thread.
Offer allocates a new node (holding the offered value) and: Sets that node as the producerNode.next Sets the new node as the producerNode From this follows that producerNode.next is always null and for all other nodes node.next is not null.
ordering - Variable in class org.jctools.queues.spec.ConcurrentQueueSpec
 
Ordering - Enum in org.jctools.queues.spec
 
org.jctools.queues - package org.jctools.queues
This package aims to fill a gap in current JDK implementations in offering lock free (wait free where possible) queues for inter-thread message passing with finer grained guarantees and an emphasis on performance.
At the time of writing the only lock free queue available in the JDK is ConcurrentLinkedQueue which is an unbounded multi-producer, multi-consumer queue which is further encumbered by the need to implement the full range of Queue methods.
org.jctools.queues.spec - package org.jctools.queues.spec
 
org.jctools.util - package org.jctools.util
 

P

peek() - Method in class org.jctools.queues.MpmcArrayQueue
 
peek() - Method in class org.jctools.queues.MpscArrayQueue
peek() - Method in class org.jctools.queues.MpscCompoundQueue
 
peek() - Method in class org.jctools.queues.MpscOnSpscQueue
 
peek() - Method in class org.jctools.queues.SpmcArrayQueue
 
peek() - Method in class org.jctools.queues.SpscArrayQueue
peek() - Method in class org.jctools.queues.SpscLinkedQueue
 
poll() - Method in class org.jctools.queues.MpmcArrayQueue
poll() - Method in class org.jctools.queues.MpscArrayQueue
poll() - Method in class org.jctools.queues.MpscCompoundQueue
 
poll() - Method in class org.jctools.queues.MpscOnSpscQueue
 
poll() - Method in class org.jctools.queues.SpmcArrayQueue
 
poll() - Method in class org.jctools.queues.SpscArrayQueue
poll() - Method in class org.jctools.queues.SpscLinkedQueue

IMPLEMENTATION NOTES:
Poll is allowed from a SINGLE thread.
Poll reads the next node from the consumerNode and: If it is null, the queue is empty.
Pow2 - Class in org.jctools.util
Power of 2 utility functions.
Pow2() - Constructor for class org.jctools.util.Pow2
 
preference - Variable in class org.jctools.queues.spec.ConcurrentQueueSpec
 
Preference - Enum in org.jctools.queues.spec
 
producers - Variable in class org.jctools.queues.spec.ConcurrentQueueSpec
 

Q

QueueFactory - Class in org.jctools.queues
The queue factory produces Queue instances based on a best fit to the ConcurrentQueueSpec.
QueueFactory() - Constructor for class org.jctools.queues.QueueFactory
 

R

remove() - Method in class org.jctools.queues.MpscOnSpscQueue
 
remove(Object) - Method in class org.jctools.queues.MpscOnSpscQueue
 
removeAll(Collection<?>) - Method in class org.jctools.queues.MpscOnSpscQueue
 
retainAll(Collection<?>) - Method in class org.jctools.queues.MpscOnSpscQueue
 
roundToPowerOfTwo(int) - Static method in class org.jctools.util.Pow2
Find the next larger positive power of two value up from the given value.

S

sequenceBuffer - Variable in class org.jctools.queues.ConcurrentSequencedCircularArrayQueue
 
size() - Method in class org.jctools.queues.MpmcArrayQueue
 
size() - Method in class org.jctools.queues.MpscArrayQueue
size() - Method in class org.jctools.queues.MpscCompoundQueue
 
size() - Method in class org.jctools.queues.MpscOnSpscQueue
 
size() - Method in class org.jctools.queues.SpmcArrayQueue
 
size() - Method in class org.jctools.queues.SpscArrayQueue
 
soElement(long, E) - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
An ordered store(store + StoreStore barrier) of an element to a given offset
soElement(E[], long, E) - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
An ordered store(store + StoreStore barrier) of an element to a given offset
soSequence(long[], long, long) - Method in class org.jctools.queues.ConcurrentSequencedCircularArrayQueue
 
SPARSE_SHIFT - Static variable in class org.jctools.queues.ConcurrentCircularArrayQueue
 
spElement(long, E) - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
A plain store (no ordering/fences) of an element to a given offset
spElement(E[], long, E) - Method in class org.jctools.queues.ConcurrentCircularArrayQueue
A plain store (no ordering/fences) of an element to a given offset
SpmcArrayQueue<E> - Class in org.jctools.queues
 
SpmcArrayQueue(int) - Constructor for class org.jctools.queues.SpmcArrayQueue
 
SpscArrayQueue<E> - Class in org.jctools.queues
A Single-Producer-Single-Consumer queue backed by a pre-allocated buffer.
SpscArrayQueue(int) - Constructor for class org.jctools.queues.SpscArrayQueue
 
SpscLinkedQueue<E> - Class in org.jctools.queues
This is a weakened version of the MPSC algorithm as presented on 1024 Cores by D.
SpscLinkedQueue() - Constructor for class org.jctools.queues.SpscLinkedQueue
 
SUPPORTS_GET_AND_SET - Static variable in class org.jctools.util.UnsafeAccess
 

T

toArray() - Method in class org.jctools.queues.MpscOnSpscQueue
 
toArray(T[]) - Method in class org.jctools.queues.MpscOnSpscQueue
 

U

UNSAFE - Static variable in class org.jctools.util.UnsafeAccess
 
UnsafeAccess - Class in org.jctools.util
Why should we resort to using Unsafe?
To construct class fields which allow volatile/ordered/plain access: This requirement is covered by AtomicReferenceFieldUpdater and similar but their performance is arguably worse than the DIY approach (depending on JVM version) while Unsafe intrinsification is a far lesser challenge for JIT compilers.
UnsafeAccess() - Constructor for class org.jctools.util.UnsafeAccess
 

V

valueOf(String) - Static method in enum org.jctools.queues.spec.Ordering
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum org.jctools.queues.spec.Preference
Returns the enum constant of this type with the specified name.
values() - Static method in enum org.jctools.queues.spec.Ordering
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum org.jctools.queues.spec.Preference
Returns an array containing the constants of this enum type, in the order they are declared.

W

weakOffer(E) - Method in class org.jctools.queues.MpscArrayQueue
A wait free alternative to offer which fails on CAS failure.

X

xchgProducerNode(LinkedQueueNode<E>) - Method in class org.jctools.queues.MpscLinkedQueue7
 
xchgProducerNode(LinkedQueueNode<E>) - Method in class org.jctools.queues.MpscLinkedQueue8
 
A B C E I L M N O P Q R S T U V W X 
Skip navigation links

Copyright © 2013–2014. All rights reserved.