Class ThreadedStreamConsumer.QueueSynchronizer<T>
java.lang.Object
org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer.QueueSynchronizer<T>
- Type Parameters:
T
- element type in the queue
- Enclosing class:
- ThreadedStreamConsumer
This synchronization helper mostly avoids the locks.
If the queue size has reached zero or
maxQueueSize
then the threads are locked (parked/unparked).
The thread instance T1 is reader (see the class "Pumper") and T2 is the writer (see the method "handleEvent").-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate class
private class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int
private final ConcurrentLinkedDeque<T>
private final AtomicInteger
private final T
private final ThreadedStreamConsumer.QueueSynchronizer<T>.SyncT1
private final ThreadedStreamConsumer.QueueSynchronizer<T>.SyncT2
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
(package private) T
(package private) void
(package private) boolean
(package private) void
(package private) void
-
Field Details
-
t1
-
t2
-
queue
-
queueSize
-
maxQueueSize
private final int maxQueueSize -
stopItemMarker
-
-
Constructor Details
-
QueueSynchronizer
QueueSynchronizer(int maxQueueSize, T stopItemMarker)
-
-
Method Details
-
markStopped
void markStopped() -
pushNext
-
awaitNext
- Throws:
InterruptedException
-
isEmptyQueue
boolean isEmptyQueue() -
clearQueue
void clearQueue() -
addNext
-