All Classes and Interfaces

Class
Description
A simple implementation of Map.Entry.
The queue factory produces Queue instances based on a best fit to the ConcurrentQueueSpec.
 
 
 
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
A base data structure for concurrent linked queues.
 
 
 
 
 
An MPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks of the initial size.
 
 
 
 
 
 
 
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
 
 
 
 
 
 
 
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
The queue factory produces Queue instances based on a best fit to the ConcurrentQueueSpec.
 
 
 
 
 
 
 
 
 
A minimal top level queue interface which allows producer/consumers access via separate interfaces.
The consumer is the object which controls the reading of messages from a channel.
A producer used by a single thread for writing into a channel.
The receiver interface is implemented by end users in order to receiver data from the channel.
 
 
An auto-resizing table of longs, supporting low-contention CAS operations.
 
 
 
Common functionality for array backed queues.
 
 
A minimal top level queue interface which allows producer/consumers access via separate interfaces.
Consumers are local to the threads which use them.
The queue factory produces ConcurrentQueue instances based on a best fit to the ConcurrentQueueSpec.
 
 
Deprecated.
 
 
 
 
 
Base counter interface.
 
 
 
 
 
 
 
 
 
 
 
 
 
Basic class representing static striped long counter with common mechanics for implementors.
Lock-free implementation of striped counter using CAS primitives.
Wait-free implementation of striped counter using Java 8 Unsafe intrinsics (lock addq and lock xchg).
 
 
 
 
 
A note to maintainers on index assumptions: in a single threaded world it would seem intuitive to assume:
 
 
 
 
 
 
 
 
 
This annotation marks classes and methods which may be public for any reason (to support better testing or reduce code duplication) but are not intended as public API and may change between releases without the change being considered a breaking API change (a major release).
 
This generator takes in an JCTools 'ArrayQueue' Java source file and patches Unsafe accesses into atomic AtomicLongFieldUpdater.
This generator takes in an JCTools 'LinkedQueue' Java source file and patches Unsafe accesses into atomic AtomicLongFieldUpdater.
Base class of the atomic queue generators.
This is used for method substitution in the LinkedArray classes code generation.
 
 
 
 
 
Message passing queues are intended for concurrent method passing.
 
 
 
 
 
 
 
 
 
 
 
A Multi-Producer-Multi-Consumer queue based on a ConcurrentCircularArrayQueue.
 
 
 
 
 
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
 
 
 
 
 
 
 
An MPMC array queue which grows unbounded in linked chunks.
Differently from MpmcArrayQueue it is designed to provide a better scaling when more producers are concurrently offering.
Users should be aware that MpmcUnboundedXaddArrayQueue.poll() could spin while awaiting a new element to be available: to avoid this behaviour MpmcUnboundedXaddArrayQueue.relaxedPoll() should be used instead, accounting for the semantic differences between the twos.
 
 
 
 
 
 
 
A Multi-Producer-Single-Consumer queue based on a ConcurrentCircularArrayQueue.
 
 
 
 
 
 
 
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
This is a partial implementation of the BlockingQueue on the consumer side only on top of the mechanics described in BaseMpscLinkedArrayQueue, but with the reservation bit used for blocking rather than resizing in this instance.
 
 
 
 
 
 
 
Package Scoped: not part of public API.
Package Scoped: not part of public API.
An MPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks of the initial size.
 
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
 
 
 
Use a set number of parallel MPSC queues to diffuse the contention on tail.
 
A Multi-Producer-Single-Consumer ring buffer.
An MPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks, doubling theirs size every time until the full blown backing array is used.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
 
 
Intrusive MPSC queue implementation based on Intrusive MPSC node-based queue as presented on 1024cores by Dmitry Vyukov.
 
 
 
 
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
This is a Java port of the MPSC algorithm as presented on 1024 Cores by D.
Channel protocol: - Fixed message size - 'null' indicator in message preceding byte (potentially use same for type mapping in future) - Use Vyukov MPMC like algorithm relying on indicator to support in place detection of next element existence
 
 
Use an SPSC per producer.
 
This class is still work in progress, please do not pick up for production use just yet.
 
 
 
 
 
 
 
 
 
 
 
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
A Multi-Producer-Single-Consumer queue based on same algorithm used for MpmcArrayQueue but with the appropriate weakening of constraints on offer.
 
 
 
 
An MPSC array queue which starts at initialCapacity and grows indefinitely in linked chunks of the initial size.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
An MPSC array queue which grows unbounded in linked chunks.
Differently from MpscUnboundedArrayQueue it is designed to provide a better scaling when more producers are concurrently offering.
Users should be aware that MpscUnboundedXaddArrayQueue.poll() could spin while awaiting a new element to be available: to avoid this behaviour MpscUnboundedXaddArrayQueue.relaxedPoll() should be used instead, accounting for the semantic differences between the twos.
 
Common infrastructure for the XADD queues.
 
 
 
 
 
 
 
 
Intrusive queue nodes are required to implement this interface.
 
A lock-free alternate implementation of ConcurrentHashMap with better scaling properties and generally lower costs to mutate the Map.
 
 
A lock-free alternate implementation of ConcurrentHashMap with primitive long keys, better scaling properties and generally lower costs.
 
 
A simple wrapper around NonBlockingHashMap making it implement the Set interface.
A lock-free alternate implementation of ConcurrentHashMap with better scaling properties and generally lower costs to mutate the Map.
 
 
A multi-threaded bit-vector set, implemented as an array of primitive longs.
 
Channel protocol: - Fixed message size - 'null' indicator in message preceding byte (potentially use same for type mapping in future) - Use FF algorithm relying on indicator to support in place detection of next element existence
 
 
Deprecated.
A padded version of the AtomicLong.
 
 
 
JVM Information that is standard and available on all JVMs (i.e.
Power of 2 utility functions.
Deprecated.
 
 
 
 
A minimal top level queue interface which allows producer/consumers access via separate interfaces.
 
This is the definition of the API required for the byte code generated by the ProxyChannelFactory
 
Deprecated.
This interface is provided for monitoring purposes only and is only available on queues where it is easy to provide it.
 
 
 
A simplified wrapper around the rage inducing Java compiler API.
 
 
 
 
 
 
 
 
 
 
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
 
 
A Single-Producer-Single-Consumer queue backed by a pre-allocated buffer.
 
 
 
 
 
 
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicArrayQueueGenerator which can found in the jctools-build module.
 
Package Scoped: not part of public API.
Package Scoped: not part of public API.
An SPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks of the initial size.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
An SPSC array queue which starts at initialCapacity and grows to maxCapacity in linked chunks, doubling theirs size every time until the full blown backing array is used.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
This is a weakened version of the MPSC algorithm as presented on 1024 Cores by D.
Channel protocol: - Fixed message size - 'null' indicator in message preceding byte (potentially use same for type mapping in future) - Use FF algorithm relying on indicator to support in place detection of next element existence
 
An SPSC array queue which starts at initialCapacity and grows indefinitely in linked chunks of the initial size.
NOTE: This class was automatically generated by org.jctools.queues.atomic.JavaParsingAtomicLinkedQueueGenerator which can found in the jctools-build module.
A Java file object which is used to represent the Java source code coming from a string.
Tagging interface to help testing
 
A single class templating library for doing runtime code-gen.
This is a little hand cranked, perhaps hacked together util to take a Java file and dump a trace of where the visitor goes.
 
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.