|
org.codehaus.gpars | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object groovyx.gpars.util.DefaultMessageQueue
@SuppressWarnings({"SynchronizedMethod", "ArithmeticOnVolatileField", "FieldAccessedSynchronizedAndUnsynchronized"}) public final class DefaultMessageQueue extends java.lang.Object
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() methodField Summary | |
---|---|
private boolean |
empty
|
private java.util.LinkedList |
inside
|
private java.util.LinkedList |
outside
|
Constructor Summary | |
DefaultMessageQueue()
|
Method Summary | |
---|---|
void
|
add(java.lang.Object element)
|
boolean
|
isEmpty()
|
java.lang.Object
|
poll()
|
private void
|
swap(java.util.LinkedList localQueue)
|
Methods inherited from class java.lang.Object | |
---|---|
java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#wait(long, int), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Field Detail |
---|
private boolean empty
private java.util.LinkedList inside
private java.util.LinkedList outside
Constructor Detail |
---|
DefaultMessageQueue()
Method Detail |
---|
@Override public void add(java.lang.Object element)
@Override public boolean isEmpty()
@Override public java.lang.Object poll()
private void swap(java.util.LinkedList localQueue)
Copyright © 2008–2010 Václav Pech. All Rights Reserved.