Uses of Class
org.jctools.util.InternalAPI
-
Packages that use InternalAPI Package Description 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 isConcurrentLinkedQueue
which is an unbounded multi-producer, multi-consumer queue which is further encumbered by the need to implement the full range ofQueue
methods.org.jctools.queues.atomic org.jctools.util -
-
Uses of InternalAPI in org.jctools.queues
Classes in org.jctools.queues with annotations of type InternalAPI Modifier and Type Class Description class
IndexedQueueSizeUtil
A note to maintainers on index assumptions: in a single threaded world it would seem intuitive to assume:static interface
IndexedQueueSizeUtil.IndexedQueue
class
LinkedArrayQueueUtil
This is used for method substitution in the LinkedArray classes code generation.class
LinkedQueueNode<E>
class
MessagePassingQueueUtil
class
MpmcUnboundedXaddChunk<E>
class
MpscUnboundedXaddChunk<E>
class
MpUnboundedXaddChunk<R,E>
interface
SupportsIterator
Tagging interface to help testing -
Uses of InternalAPI in org.jctools.queues.atomic
Classes in org.jctools.queues.atomic with annotations of type InternalAPI Modifier and Type Class Description class
AtomicQueueUtil
class
AtomicReferenceArrayQueue<E>
class
LinkedQueueAtomicNode<E>
class
SequencedAtomicReferenceArrayQueue<E>
-
Uses of InternalAPI in org.jctools.util
Classes in org.jctools.util with annotations of type InternalAPI Modifier and Type Interface Description interface
PortableJvmInfo
JVM Information that is standard and available on all JVMs (i.e.class
Pow2
Power of 2 utility functions.class
RangeUtil
class
SpscLookAheadUtil
class
UnsafeAccess
Why should we resort to using Unsafe?
To construct class fields which allow volatile/ordered/plain access: This requirement is covered byAtomicReferenceFieldUpdater
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.interface
UnsafeJvmInfo
class
UnsafeLongArrayAccess
class
UnsafeRefArrayAccess
-