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.IOException
protected void notComplete(SharedBlockingCallback.Blocker blocker)