|
org.codehaus.gpars | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object groovyx.gpars.util.FQMessageQueue
@SuppressWarnings({"rawtypes", "RawUseOfParameterizedType", "unchecked"}) public final class FQMessageQueue extends java.lang.Object
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() methodNested Class Summary | |
---|---|
static class |
FQMessageQueue.EmptyNode
|
static class |
FQMessageQueue.Node
|
Field Summary | |
---|---|
private FQMessageQueue.Node |
inside
|
private FQMessageQueue.Node |
outside
|
private java.util.concurrent.atomic.AtomicReferenceFieldUpdater |
outsideUpdater
|
Constructor Summary | |
FQMessageQueue()
|
Method Summary | |
---|---|
void
|
add(java.lang.Object element)
|
boolean
|
isEmpty()
|
java.lang.Object
|
poll()
|
private java.lang.Object
|
pollFromInside()
|
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 FQMessageQueue.Node inside
@SuppressWarnings({"FieldMayBeFinal"}) private FQMessageQueue.Node outside
private final java.util.concurrent.atomic.AtomicReferenceFieldUpdater outsideUpdater
Constructor Detail |
---|
FQMessageQueue()
Method Detail |
---|
@Override public void add(java.lang.Object element)
@Override public boolean isEmpty()
@Override public java.lang.Object poll()
private java.lang.Object pollFromInside()
Copyright © 2008–2010 Václav Pech. All Rights Reserved.