Package org.apache.pekko.dispatch
Class AbstractBoundedNodeQueue<T>
- java.lang.Object
-
- org.apache.pekko.dispatch.AbstractBoundedNodeQueue<T>
-
- Direct Known Subclasses:
BoundedNodeMessageQueue
public abstract class AbstractBoundedNodeQueue<T> extends java.lang.Object
Lock-free bounded non-blocking multiple-producer single-consumer queue based on the works of: Andriy Plokhotnuyk (https://github.com/plokhotnyuk) - https://github.com/plokhotnyuk/actors/blob/2e65abb7ce4cbfcb1b29c98ee99303d6ced6b01f/src/test/scala/akka/dispatch/Mailboxes.scala (Apache V2: https://github.com/plokhotnyuk/actors/blob/master/LICENSE) Dmitriy Vyukov's non-intrusive MPSC queue: - https://www.1024cores.net/home/lock-free-algorithms/queues/non-intrusive-mpsc-node-based-queue (Simplified BSD)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractBoundedNodeQueue.Node<T>
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractBoundedNodeQueue(int capacity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(T value)
boolean
addNode(AbstractBoundedNodeQueue.Node<T> n)
int
capacity()
boolean
isEmpty()
T
peek()
protected AbstractBoundedNodeQueue.Node<T>
peekNode()
T
poll()
Removes the first element of this queue if anyAbstractBoundedNodeQueue.Node<T>
pollNode()
Removes the first element of this queue if anyint
size()
Returns an approximation of the queue's "current" size
-
-
-
Method Detail
-
peekNode
protected final AbstractBoundedNodeQueue.Node<T> peekNode()
-
peek
public final T peek()
- Returns:
- the first value of this queue, null if empty
-
capacity
public final int capacity()
- Returns:
- the maximum capacity of this queue
-
add
public final boolean add(T value)
-
addNode
public final boolean addNode(AbstractBoundedNodeQueue.Node<T> n)
-
isEmpty
public final boolean isEmpty()
-
size
public final int size()
Returns an approximation of the queue's "current" size
-
poll
public final T poll()
Removes the first element of this queue if any- Returns:
- the value of the first element of the queue, null if empty
-
pollNode
public final AbstractBoundedNodeQueue.Node<T> pollNode()
Removes the first element of this queue if any- Returns:
- the `Node` of the first element of the queue, null if empty
-
-