groovyx.gpars.util
Class DefaultMessageQueue
java.lang.Object
groovyx.gpars.util.DefaultMessageQueue
- All Implemented Interfaces:
- MessageQueue
public final class DefaultMessageQueue
- extends java.lang.Object
- implements MessageQueue
An implementation of the message queue for actor and agent messaging.
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
Field Summary |
private boolean |
empty
|
private java.util.LinkedList<java.lang.Object> |
inside
|
private java.util.LinkedList<java.lang.Object> |
outside
|
Method Summary |
void |
add(java.lang.Object element)
|
boolean |
isEmpty()
|
java.lang.Object |
poll()
|
private void |
swap(java.util.LinkedList<java.lang.Object> localQueue)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
outside
private java.util.LinkedList<java.lang.Object> outside
inside
private java.util.LinkedList<java.lang.Object> inside
empty
private volatile boolean empty
DefaultMessageQueue
public DefaultMessageQueue()
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interface MessageQueue
poll
public java.lang.Object poll()
- Specified by:
poll
in interface MessageQueue
swap
private void swap(java.util.LinkedList<java.lang.Object> localQueue)
add
public void add(java.lang.Object element)
- Specified by:
add
in interface MessageQueue