Class Uninterruptibles
- java.lang.Object
-
- com.google.common.util.concurrent.Uninterruptibles
-
@Beta 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.- Since:
- 10.0
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
awaitUninterruptibly(CountDownLatch latch)
Invokeslatch.
await()
uninterruptibly.static boolean
awaitUninterruptibly(CountDownLatch latch, long timeout, TimeUnit unit)
Invokeslatch.
await(timeout, unit)
uninterruptibly.static <V> V
getUninterruptibly(Future<V> future)
Invokesfuture.
get()
uninterruptibly.static <V> V
getUninterruptibly(Future<V> future, long timeout, TimeUnit unit)
Invokesfuture.
get(timeout, unit)
uninterruptibly.static void
joinUninterruptibly(Thread toJoin)
InvokestoJoin.
join()
uninterruptibly.static void
joinUninterruptibly(Thread toJoin, long timeout, TimeUnit unit)
Invokesunit.
timedJoin(toJoin, timeout)
uninterruptibly.static <E> void
putUninterruptibly(BlockingQueue<E> queue, E element)
Invokesqueue.
put(element)
uninterruptibly.static void
sleepUninterruptibly(long sleepFor, TimeUnit unit)
Invokesunit.
sleep(sleepFor)
uninterruptibly.static <E> E
takeUninterruptibly(BlockingQueue<E> queue)
Invokesqueue.
take()
uninterruptibly.
-
-
-
Method Detail
-
awaitUninterruptibly
public static void awaitUninterruptibly(CountDownLatch latch)
Invokeslatch.
await()
uninterruptibly.
-
awaitUninterruptibly
public static boolean awaitUninterruptibly(CountDownLatch latch, long timeout, TimeUnit unit)
Invokeslatch.
await(timeout, unit)
uninterruptibly.
-
joinUninterruptibly
public static void joinUninterruptibly(Thread toJoin)
InvokestoJoin.
join()
uninterruptibly.
-
getUninterruptibly
public static <V> V getUninterruptibly(Future<V> future) throws ExecutionException
Invokesfuture.
get()
uninterruptibly. To get uninterruptibility and remove checked exceptions, seeFutures.getUnchecked(java.util.concurrent.Future<V>)
.If instead, you wish to treat
InterruptedException
uniformly with other exceptions, seeFutures.get
orFutures.makeChecked(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.base.Function<java.lang.Exception, X>)
.- Throws:
ExecutionException
- if the computation threw an exceptionCancellationException
- if the computation was cancelled
-
getUninterruptibly
public static <V> V getUninterruptibly(Future<V> future, long timeout, TimeUnit unit) throws ExecutionException, TimeoutException
Invokesfuture.
get(timeout, unit)
uninterruptibly.If instead, you wish to treat
InterruptedException
uniformly with other exceptions, seeFutures.get
orFutures.makeChecked(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.base.Function<java.lang.Exception, X>)
.- Throws:
ExecutionException
- if the computation threw an exceptionCancellationException
- if the computation was cancelledTimeoutException
- if the wait timed out
-
joinUninterruptibly
public static void joinUninterruptibly(Thread toJoin, long timeout, TimeUnit unit)
Invokesunit.
timedJoin(toJoin, timeout)
uninterruptibly.
-
takeUninterruptibly
public static <E> E takeUninterruptibly(BlockingQueue<E> queue)
Invokesqueue.
take()
uninterruptibly.
-
putUninterruptibly
public static <E> void putUninterruptibly(BlockingQueue<E> queue, E element)
Invokesqueue.
put(element)
uninterruptibly.- Throws:
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
-
sleepUninterruptibly
public static void sleepUninterruptibly(long sleepFor, TimeUnit unit)
Invokesunit.
sleep(sleepFor)
uninterruptibly.
-
-