Class Uninterruptibles
- java.lang.Object
-
- com.google.common.util.concurrent.Uninterruptibles
-
public final class Uninterruptibles extends java.lang.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
-
-
Constructor Summary
Constructors Modifier Constructor Description private
Uninterruptibles()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
awaitTerminationUninterruptibly(java.util.concurrent.ExecutorService executor)
Invokesexecutor.
awaitTermination(long, TimeUnit)
uninterruptibly with no timeout.static boolean
awaitTerminationUninterruptibly(java.util.concurrent.ExecutorService executor, long timeout, java.util.concurrent.TimeUnit unit)
Invokesexecutor.
awaitTermination(long, TimeUnit)
uninterruptibly.static boolean
awaitTerminationUninterruptibly(java.util.concurrent.ExecutorService executor, java.time.Duration timeout)
Invokesexecutor.
awaitTermination(long, TimeUnit)
uninterruptibly.static void
awaitUninterruptibly(java.util.concurrent.CountDownLatch latch)
Invokeslatch.
await()
uninterruptibly.static boolean
awaitUninterruptibly(java.util.concurrent.CountDownLatch latch, long timeout, java.util.concurrent.TimeUnit unit)
Invokeslatch.
await(timeout, unit)
uninterruptibly.static boolean
awaitUninterruptibly(java.util.concurrent.CountDownLatch latch, java.time.Duration timeout)
Invokeslatch.
await(timeout, unit)
uninterruptibly.static boolean
awaitUninterruptibly(java.util.concurrent.locks.Condition condition, long timeout, java.util.concurrent.TimeUnit unit)
Invokescondition.
await(timeout, unit)
uninterruptibly.static boolean
awaitUninterruptibly(java.util.concurrent.locks.Condition condition, java.time.Duration timeout)
Invokescondition.
await(timeout, unit)
uninterruptibly.static <V> V
getUninterruptibly(java.util.concurrent.Future<V> future)
Invokesfuture.
get()
uninterruptibly.static <V> V
getUninterruptibly(java.util.concurrent.Future<V> future, long timeout, java.util.concurrent.TimeUnit unit)
Invokesfuture.
get(timeout, unit)
uninterruptibly.static <V> V
getUninterruptibly(java.util.concurrent.Future<V> future, java.time.Duration timeout)
Invokesfuture.
get(timeout, unit)
uninterruptibly.static void
joinUninterruptibly(java.lang.Thread toJoin)
InvokestoJoin.
join()
uninterruptibly.static void
joinUninterruptibly(java.lang.Thread toJoin, long timeout, java.util.concurrent.TimeUnit unit)
Invokesunit.
timedJoin(toJoin, timeout)
uninterruptibly.static void
joinUninterruptibly(java.lang.Thread toJoin, java.time.Duration timeout)
Invokesunit.
timedJoin(toJoin, timeout)
uninterruptibly.static <E> void
putUninterruptibly(java.util.concurrent.BlockingQueue<E> queue, E element)
Invokesqueue.
put(element)
uninterruptibly.static void
sleepUninterruptibly(long sleepFor, java.util.concurrent.TimeUnit unit)
Invokesunit.
sleep(sleepFor)
uninterruptibly.static void
sleepUninterruptibly(java.time.Duration sleepFor)
Invokesunit.
sleep(sleepFor)
uninterruptibly.static <E> E
takeUninterruptibly(java.util.concurrent.BlockingQueue<E> queue)
Invokesqueue.
take()
uninterruptibly.static boolean
tryAcquireUninterruptibly(java.util.concurrent.Semaphore semaphore, int permits, long timeout, java.util.concurrent.TimeUnit unit)
Invokessemaphore.
tryAcquire(permits, timeout, unit)
uninterruptibly.static boolean
tryAcquireUninterruptibly(java.util.concurrent.Semaphore semaphore, int permits, java.time.Duration timeout)
Invokessemaphore.
tryAcquire(permits, timeout, unit)
uninterruptibly.static boolean
tryAcquireUninterruptibly(java.util.concurrent.Semaphore semaphore, long timeout, java.util.concurrent.TimeUnit unit)
Invokessemaphore.
tryAcquire(1, timeout, unit)
uninterruptibly.static boolean
tryAcquireUninterruptibly(java.util.concurrent.Semaphore semaphore, java.time.Duration timeout)
Invokessemaphore.
tryAcquire(1, timeout, unit)
uninterruptibly.static boolean
tryLockUninterruptibly(java.util.concurrent.locks.Lock lock, long timeout, java.util.concurrent.TimeUnit unit)
Invokeslock.
tryLock(timeout, unit)
uninterruptibly.static boolean
tryLockUninterruptibly(java.util.concurrent.locks.Lock lock, java.time.Duration timeout)
Invokeslock.
tryLock(timeout, unit)
uninterruptibly.
-
-
-
Method Detail
-
awaitUninterruptibly
public static void awaitUninterruptibly(java.util.concurrent.CountDownLatch latch)
Invokeslatch.
await()
uninterruptibly.
-
awaitUninterruptibly
public static boolean awaitUninterruptibly(java.util.concurrent.CountDownLatch latch, java.time.Duration timeout)
Invokeslatch.
await(timeout, unit)
uninterruptibly.- Since:
- 28.0
-
awaitUninterruptibly
public static boolean awaitUninterruptibly(java.util.concurrent.CountDownLatch latch, long timeout, java.util.concurrent.TimeUnit unit)
Invokeslatch.
await(timeout, unit)
uninterruptibly.
-
awaitUninterruptibly
public static boolean awaitUninterruptibly(java.util.concurrent.locks.Condition condition, java.time.Duration timeout)
Invokescondition.
await(timeout, unit)
uninterruptibly.- Since:
- 28.0
-
awaitUninterruptibly
public static boolean awaitUninterruptibly(java.util.concurrent.locks.Condition condition, long timeout, java.util.concurrent.TimeUnit unit)
Invokescondition.
await(timeout, unit)
uninterruptibly.- Since:
- 23.6
-
joinUninterruptibly
public static void joinUninterruptibly(java.lang.Thread toJoin)
InvokestoJoin.
join()
uninterruptibly.
-
joinUninterruptibly
public static void joinUninterruptibly(java.lang.Thread toJoin, java.time.Duration timeout)
Invokesunit.
timedJoin(toJoin, timeout)
uninterruptibly.- Since:
- 28.0
-
joinUninterruptibly
public static void joinUninterruptibly(java.lang.Thread toJoin, long timeout, java.util.concurrent.TimeUnit unit)
Invokesunit.
timedJoin(toJoin, timeout)
uninterruptibly.
-
getUninterruptibly
public static <V> V getUninterruptibly(java.util.concurrent.Future<V> future) throws java.util.concurrent.ExecutionException
Invokesfuture.
get()
uninterruptibly.Similar methods:
- To retrieve a result from a
Future
that is already done, useFutures.getDone
. - To treat
InterruptedException
uniformly with other exceptions, useFutures.getChecked
. - To get uninterruptibility and remove checked exceptions, use
Futures.getUnchecked(java.util.concurrent.Future<V>)
.
- Throws:
java.util.concurrent.ExecutionException
- if the computation threw an exceptionjava.util.concurrent.CancellationException
- if the computation was cancelled
- To retrieve a result from a
-
getUninterruptibly
public static <V> V getUninterruptibly(java.util.concurrent.Future<V> future, java.time.Duration timeout) throws java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
Invokesfuture.
get(timeout, unit)
uninterruptibly.Similar methods:
- To retrieve a result from a
Future
that is already done, useFutures.getDone
. - To treat
InterruptedException
uniformly with other exceptions, useFutures.getChecked
. - To get uninterruptibility and remove checked exceptions, use
Futures.getUnchecked(java.util.concurrent.Future<V>)
.
- Throws:
java.util.concurrent.ExecutionException
- if the computation threw an exceptionjava.util.concurrent.CancellationException
- if the computation was cancelledjava.util.concurrent.TimeoutException
- if the wait timed out- Since:
- 28.0
- To retrieve a result from a
-
getUninterruptibly
public static <V> V getUninterruptibly(java.util.concurrent.Future<V> future, long timeout, java.util.concurrent.TimeUnit unit) throws java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
Invokesfuture.
get(timeout, unit)
uninterruptibly.Similar methods:
- To retrieve a result from a
Future
that is already done, useFutures.getDone
. - To treat
InterruptedException
uniformly with other exceptions, useFutures.getChecked
. - To get uninterruptibility and remove checked exceptions, use
Futures.getUnchecked(java.util.concurrent.Future<V>)
.
- Throws:
java.util.concurrent.ExecutionException
- if the computation threw an exceptionjava.util.concurrent.CancellationException
- if the computation was cancelledjava.util.concurrent.TimeoutException
- if the wait timed out
- To retrieve a result from a
-
takeUninterruptibly
public static <E> E takeUninterruptibly(java.util.concurrent.BlockingQueue<E> queue)
Invokesqueue.
take()
uninterruptibly.
-
putUninterruptibly
public static <E> void putUninterruptibly(java.util.concurrent.BlockingQueue<E> queue, E element)
Invokesqueue.
put(element)
uninterruptibly.- Throws:
java.lang.ClassCastException
- if the class of the specified element prevents it from being added to the given queuejava.lang.IllegalArgumentException
- if some property of the specified element prevents it from being added to the given queue
-
sleepUninterruptibly
public static void sleepUninterruptibly(java.time.Duration sleepFor)
Invokesunit.
sleep(sleepFor)
uninterruptibly.- Since:
- 28.0
-
sleepUninterruptibly
public static void sleepUninterruptibly(long sleepFor, java.util.concurrent.TimeUnit unit)
Invokesunit.
sleep(sleepFor)
uninterruptibly.
-
tryAcquireUninterruptibly
public static boolean tryAcquireUninterruptibly(java.util.concurrent.Semaphore semaphore, java.time.Duration timeout)
Invokessemaphore.
tryAcquire(1, timeout, unit)
uninterruptibly.- Since:
- 28.0
-
tryAcquireUninterruptibly
public static boolean tryAcquireUninterruptibly(java.util.concurrent.Semaphore semaphore, long timeout, java.util.concurrent.TimeUnit unit)
Invokessemaphore.
tryAcquire(1, timeout, unit)
uninterruptibly.- Since:
- 18.0
-
tryAcquireUninterruptibly
public static boolean tryAcquireUninterruptibly(java.util.concurrent.Semaphore semaphore, int permits, java.time.Duration timeout)
Invokessemaphore.
tryAcquire(permits, timeout, unit)
uninterruptibly.- Since:
- 28.0
-
tryAcquireUninterruptibly
public static boolean tryAcquireUninterruptibly(java.util.concurrent.Semaphore semaphore, int permits, long timeout, java.util.concurrent.TimeUnit unit)
Invokessemaphore.
tryAcquire(permits, timeout, unit)
uninterruptibly.- Since:
- 18.0
-
tryLockUninterruptibly
public static boolean tryLockUninterruptibly(java.util.concurrent.locks.Lock lock, java.time.Duration timeout)
Invokeslock.
tryLock(timeout, unit)
uninterruptibly.- Since:
- 30.0
-
tryLockUninterruptibly
public static boolean tryLockUninterruptibly(java.util.concurrent.locks.Lock lock, long timeout, java.util.concurrent.TimeUnit unit)
Invokeslock.
tryLock(timeout, unit)
uninterruptibly.- Since:
- 30.0
-
awaitTerminationUninterruptibly
public static void awaitTerminationUninterruptibly(java.util.concurrent.ExecutorService executor)
Invokesexecutor.
awaitTermination(long, TimeUnit)
uninterruptibly with no timeout.- Since:
- 30.0
-
awaitTerminationUninterruptibly
public static boolean awaitTerminationUninterruptibly(java.util.concurrent.ExecutorService executor, java.time.Duration timeout)
Invokesexecutor.
awaitTermination(long, TimeUnit)
uninterruptibly.- Since:
- 30.0
-
awaitTerminationUninterruptibly
public static boolean awaitTerminationUninterruptibly(java.util.concurrent.ExecutorService executor, long timeout, java.util.concurrent.TimeUnit unit)
Invokesexecutor.
awaitTermination(long, TimeUnit)
uninterruptibly.- Since:
- 30.0
-
-