Class WaitQueue.Standard.AbstractSignal
- java.lang.Object
-
- org.apache.cassandra.utils.concurrent.Awaitable.AbstractAwaitable
-
- org.apache.cassandra.utils.concurrent.WaitQueue.Standard.AbstractSignal
-
- All Implemented Interfaces:
Awaitable
,Condition
,WaitQueue.Signal
- Enclosing class:
- WaitQueue.Standard
public abstract static class WaitQueue.Standard.AbstractSignal extends Awaitable.AbstractAwaitable implements WaitQueue.Signal
An abstract signal implementation TODO: use intrusive linked list
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.cassandra.utils.concurrent.Awaitable
Awaitable.AbstractAwaitable, Awaitable.AsyncAwaitable, Awaitable.Defaults, Awaitable.SyncAwaitable
-
Nested classes/interfaces inherited from interface org.apache.cassandra.utils.concurrent.Condition
Condition.Async, Condition.Sync
-
-
Constructor Summary
Constructors Constructor Description AbstractSignal()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description WaitQueue.Signal
await()
Await indefinitely, throwing any interrupt.WaitQueue.Signal
awaitUninterruptibly()
boolean
awaitUntil(long nanoTimeDeadline)
Await until the deadline (in nanoTime), throwing any interrupt.boolean
awaitUntilUninterruptibly(long nanoTimeDeadline)
-
Methods inherited from class org.apache.cassandra.utils.concurrent.Awaitable.AbstractAwaitable
await, awaitThrowUncheckedOnInterrupt, awaitThrowUncheckedOnInterrupt, awaitUninterruptibly, awaitUntilThrowUncheckedOnInterrupt
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.cassandra.utils.concurrent.Awaitable
await, awaitThrowUncheckedOnInterrupt, awaitThrowUncheckedOnInterrupt, awaitUninterruptibly, awaitUntilThrowUncheckedOnInterrupt
-
Methods inherited from interface org.apache.cassandra.utils.concurrent.Condition
isSignalled, signal, signalAll
-
Methods inherited from interface org.apache.cassandra.utils.concurrent.WaitQueue.Signal
cancel, checkAndClear, isCancelled, isSet
-
-
-
-
Method Detail
-
awaitUninterruptibly
public WaitQueue.Signal awaitUninterruptibly()
Description copied from class:Awaitable.AbstractAwaitable
- Specified by:
awaitUninterruptibly
in interfaceAwaitable
- Overrides:
awaitUninterruptibly
in classAwaitable.AbstractAwaitable
-
await
public WaitQueue.Signal await() throws java.lang.InterruptedException
Description copied from interface:WaitQueue.Signal
Await indefinitely, throwing any interrupt. No spurious wakeups. Important: the signal can be cancelled if the thread executing await() is interrupted- Specified by:
await
in interfaceAwaitable
- Specified by:
await
in interfaceWaitQueue.Signal
- Throws:
java.lang.InterruptedException
- if interrupted
-
awaitUntilUninterruptibly
public boolean awaitUntilUninterruptibly(long nanoTimeDeadline)
Description copied from class:Awaitable.AbstractAwaitable
- Specified by:
awaitUntilUninterruptibly
in interfaceAwaitable
- Overrides:
awaitUntilUninterruptibly
in classAwaitable.AbstractAwaitable
- Returns:
- true if we were signalled, false if the deadline elapsed
-
awaitUntil
public boolean awaitUntil(long nanoTimeDeadline) throws java.lang.InterruptedException
Description copied from interface:WaitQueue.Signal
Await until the deadline (in nanoTime), throwing any interrupt. No spurious wakeups.- Specified by:
awaitUntil
in interfaceAwaitable
- Specified by:
awaitUntil
in interfaceWaitQueue.Signal
- Returns:
- true if we were signalled, false if the deadline elapsed Important: the signal can be cancelled if the thread executing await() is interrupted
- Throws:
java.lang.InterruptedException
- if interrupted
-
-