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 voidawaitUninterruptibly(CountDownLatch latch)Invokeslatch.await()uninterruptibly.static booleanawaitUninterruptibly(CountDownLatch latch, long timeout, TimeUnit unit)Invokeslatch.await(timeout, unit)uninterruptibly.static <V> VgetUninterruptibly(Future<V> future)Invokesfuture.get()uninterruptibly.static <V> VgetUninterruptibly(Future<V> future, long timeout, TimeUnit unit)Invokesfuture.get(timeout, unit)uninterruptibly.static voidjoinUninterruptibly(Thread toJoin)InvokestoJoin.join()uninterruptibly.static voidjoinUninterruptibly(Thread toJoin, long timeout, TimeUnit unit)Invokesunit.timedJoin(toJoin, timeout)uninterruptibly.static <E> voidputUninterruptibly(BlockingQueue<E> queue, E element)Invokesqueue.put(element)uninterruptibly.static voidsleepUninterruptibly(long sleepFor, TimeUnit unit)Invokesunit.sleep(sleepFor)uninterruptibly.static <E> EtakeUninterruptibly(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
InterruptedExceptionuniformly with other exceptions, seeFutures.getorFutures.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
InterruptedExceptionuniformly with other exceptions, seeFutures.getorFutures.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.
-
-