public class SharedBlockingCallback
extends java.lang.Object
Callback that can block the thread
while waiting to be completed.
A typical usage pattern is:
void someBlockingCall(Object... args) throws IOException
{
try(Blocker blocker = sharedBlockingCallback.acquire())
{
someAsyncCall(args, blocker);
blocker.block();
}
}
| Modifier and Type | Class and Description |
|---|---|
class |
SharedBlockingCallback.Blocker
A Closeable Callback.
|
private static class |
SharedBlockingCallback.BlockerTimeoutException |
| Modifier and Type | Field and Description |
|---|---|
private SharedBlockingCallback.Blocker |
_blocker |
private java.util.concurrent.locks.Condition |
_complete |
private java.util.concurrent.locks.Condition |
_idle |
private java.util.concurrent.locks.ReentrantLock |
_lock |
private static java.lang.Throwable |
FAILED |
private static java.lang.Throwable |
IDLE |
(package private) static Logger |
LOG |
private static java.lang.Throwable |
SUCCEEDED |
| Constructor and Description |
|---|
SharedBlockingCallback() |
| Modifier and Type | Method and Description |
|---|---|
SharedBlockingCallback.Blocker |
acquire() |
protected long |
getIdleTimeout() |
protected void |
notComplete(SharedBlockingCallback.Blocker blocker) |
static final Logger LOG
private static java.lang.Throwable IDLE
private static java.lang.Throwable SUCCEEDED
private static java.lang.Throwable FAILED
private final java.util.concurrent.locks.ReentrantLock _lock
private final java.util.concurrent.locks.Condition _idle
private final java.util.concurrent.locks.Condition _complete
private SharedBlockingCallback.Blocker _blocker
protected long getIdleTimeout()
public SharedBlockingCallback.Blocker acquire() throws java.io.IOException
java.io.IOExceptionprotected void notComplete(SharedBlockingCallback.Blocker blocker)