groovyx.gpars.util
Class FQMessageQueue
java.lang.Object
groovyx.gpars.util.FQMessageQueue
- All Implemented Interfaces:
- MessageQueue
public final class FQMessageQueue
- extends java.lang.Object
- implements MessageQueue
An implementation of the message queue for actor and agent messaging using functional queues.
It leverages the fact that in any moment there's only one reading thread accessing the queue
and that potential read thread swap at the actor or agent thread pool synchronizes thread memory.
We also count on writers not to call the isEmpty() method
- Author:
- Vaclav Pech
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
outside
private volatile FQMessageQueue.Node outside
inside
private FQMessageQueue.Node inside
outsideUpdater
private final java.util.concurrent.atomic.AtomicReferenceFieldUpdater outsideUpdater
FQMessageQueue
public FQMessageQueue()
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interface MessageQueue
poll
public java.lang.Object poll()
- Specified by:
poll
in interface MessageQueue
pollFromInside
private java.lang.Object pollFromInside()
add
public void add(java.lang.Object element)
- Specified by:
add
in interface MessageQueue