Class AbstractWaitingCondition
- java.lang.Object
-
- com.conversantmedia.util.concurrent.AbstractWaitingCondition
-
- All Implemented Interfaces:
Condition
- Direct Known Subclasses:
ConcurrentStack.WaitingStackNotEmpty
,ConcurrentStack.WaitingStackNotFull
,DisruptorBlockingQueue.WaitingQueueNotEmpty
,DisruptorBlockingQueue.WaitingQueueNotFull
,MPMCBlockingQueue.WaitingQueueNotEmpty
,MPMCBlockingQueue.WaitingQueueNotFull
,PushPullBlockingQueue.WaitingQueueNotEmpty
,PushPullBlockingQueue.WaitingQueueNotFull
public abstract class AbstractWaitingCondition extends java.lang.Object implements Condition
Created by jcairns on 12/11/14.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) long
c1
(package private) long
c2
(package private) long
c3
(package private) long
c4
(package private) long
c5
(package private) long
c6
(package private) long
c7
(package private) long
c8
private static int
CACHE_LINE_REFS
private static int
MAX_WAITERS
(package private) long
r1
(package private) long
r2
(package private) long
r3
(package private) long
r4
(package private) long
r5
(package private) long
r6
(package private) long
r7
private static long
WAIT_TIME
private long
waitCache
private java.util.concurrent.atomic.LongAdder
waitCount
private java.util.concurrent.atomic.AtomicReferenceArray<java.lang.Thread>
waiter
private static long
WAITER_MASK
-
Fields inherited from interface com.conversantmedia.util.concurrent.Condition
MAX_PROG_YIELD, PARK_TIMEOUT
-
-
Constructor Summary
Constructors Constructor Description AbstractWaitingCondition()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
await()
void
awaitNanos(long timeout)
void
signal()
abstract boolean
test()
code below will block until test() returns false
-
-
-
Field Detail
-
CACHE_LINE_REFS
private static final int CACHE_LINE_REFS
-
MAX_WAITERS
private static final int MAX_WAITERS
- See Also:
- Constant Field Values
-
WAITER_MASK
private static final long WAITER_MASK
- See Also:
- Constant Field Values
-
WAIT_TIME
private static final long WAIT_TIME
- See Also:
- Constant Field Values
-
waitCount
private final java.util.concurrent.atomic.LongAdder waitCount
-
waiter
private final java.util.concurrent.atomic.AtomicReferenceArray<java.lang.Thread> waiter
-
r1
long r1
-
r2
long r2
-
r3
long r3
-
r4
long r4
-
r5
long r5
-
r6
long r6
-
r7
long r7
-
waitCache
private long waitCache
-
c1
long c1
-
c2
long c2
-
c3
long c3
-
c4
long c4
-
c5
long c5
-
c6
long c6
-
c7
long c7
-
c8
long c8
-
-
Method Detail
-
test
public abstract boolean test()
code below will block until test() returns false
-
awaitNanos
public void awaitNanos(long timeout) throws java.lang.InterruptedException
- Specified by:
awaitNanos
in interfaceCondition
- Throws:
java.lang.InterruptedException
-
await
public void await() throws java.lang.InterruptedException
-
-