@Beta @GwtCompatible(emulated=true) public final class Uninterruptibles extends Object
Utilities for treating interruptible operations as uninterruptible. In all cases, if a thread is interrupted during such a call, the call continues to block until the result is available or the timeout elapses, and only then re-interrupts the thread.
Modifier and Type | Method and Description |
---|---|
static void |
awaitUninterruptibly(CountDownLatch latch)
Invokes
latch. await() uninterruptibly. |
static boolean |
awaitUninterruptibly(CountDownLatch latch,
long timeout,
TimeUnit unit)
Invokes
latch. await(timeout, unit) uninterruptibly. |
static <V> V |
getUninterruptibly(Future<V> future)
Invokes
future. get() uninterruptibly. |
static <V> V |
getUninterruptibly(Future<V> future,
long timeout,
TimeUnit unit)
Invokes
future. get(timeout, unit) uninterruptibly. |
static void |
joinUninterruptibly(Thread toJoin)
Invokes
toJoin. join() uninterruptibly. |
static void |
joinUninterruptibly(Thread toJoin,
long timeout,
TimeUnit unit)
Invokes
unit. timedJoin(toJoin, timeout) uninterruptibly. |
static <E> void |
putUninterruptibly(BlockingQueue<E> queue,
E element)
Invokes
queue. put(element) uninterruptibly. |
static void |
sleepUninterruptibly(long sleepFor,
TimeUnit unit)
Invokes
unit. sleep(sleepFor) uninterruptibly. |
static <E> E |
takeUninterruptibly(BlockingQueue<E> queue)
Invokes
queue. take() uninterruptibly. |
static boolean |
tryAcquireUninterruptibly(Semaphore semaphore,
int permits,
long timeout,
TimeUnit unit)
Invokes
semaphore. tryAcquire(permits, timeout, unit) uninterruptibly. |
static boolean |
tryAcquireUninterruptibly(Semaphore semaphore,
long timeout,
TimeUnit unit)
Invokes
semaphore. tryAcquire(1, timeout, unit) uninterruptibly. |
@GwtIncompatible(value="concurrency") public static void awaitUninterruptibly(CountDownLatch latch)
Invokes latch.
await()
uninterruptibly.
@GwtIncompatible(value="concurrency") public static boolean awaitUninterruptibly(CountDownLatch latch, long timeout, TimeUnit unit)
Invokes latch.
await(timeout, unit)
uninterruptibly.
@GwtIncompatible(value="concurrency") public static void joinUninterruptibly(Thread toJoin)
Invokes toJoin.
join()
uninterruptibly.
public static <V> V getUninterruptibly(Future<V> future) throws ExecutionException
Invokes future.
get()
uninterruptibly. To get uninterruptibility and remove checked exceptions, see Futures.getUnchecked(java.util.concurrent.Future<V>)
.
If instead, you wish to treat InterruptedException
uniformly with other exceptions, see Futures.getChecked
.
ExecutionException
- if the computation threw an exceptionCancellationException
- if the computation was cancelled@GwtIncompatible(value="TODO") public static <V> V getUninterruptibly(Future<V> future, long timeout, TimeUnit unit) throws ExecutionException, TimeoutException
Invokes future.
get(timeout, unit)
uninterruptibly.
If instead, you wish to treat InterruptedException
uniformly with other exceptions, see Futures.getChecked
.
ExecutionException
- if the computation threw an exceptionCancellationException
- if the computation was cancelledTimeoutException
- if the wait timed out@GwtIncompatible(value="concurrency") public static void joinUninterruptibly(Thread toJoin, long timeout, TimeUnit unit)
Invokes unit.
timedJoin(toJoin, timeout)
uninterruptibly.
@GwtIncompatible(value="concurrency") public static <E> E takeUninterruptibly(BlockingQueue<E> queue)
Invokes queue.
take()
uninterruptibly.
@GwtIncompatible(value="concurrency") public static <E> void putUninterruptibly(BlockingQueue<E> queue, E element)
Invokes queue.
put(element)
uninterruptibly.
ClassCastException
- if the class of the specified element prevents it from being added to the given queueIllegalArgumentException
- if some property of the specified element prevents it from being added to the given queue@GwtIncompatible(value="concurrency") public static void sleepUninterruptibly(long sleepFor, TimeUnit unit)
Invokes unit.
sleep(sleepFor)
uninterruptibly.
@GwtIncompatible(value="concurrency") public static boolean tryAcquireUninterruptibly(Semaphore semaphore, long timeout, TimeUnit unit)
Invokes semaphore.
tryAcquire(1, timeout, unit)
uninterruptibly.
@GwtIncompatible(value="concurrency") public static boolean tryAcquireUninterruptibly(Semaphore semaphore, int permits, long timeout, TimeUnit unit)
Invokes semaphore.
tryAcquire(permits, timeout, unit)
uninterruptibly.