java.lang.Object
dev.mccue.guava.concurrent.Uninterruptibles
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
- Author:
- Anthony Zana
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidInvokesexecutor.ExecutorService#awaitTermination(long, TimeUnit) awaitTermination(long, TimeUnit)uninterruptibly with no timeout.static booleanawaitTerminationUninterruptibly(ExecutorService executor, long timeout, TimeUnit unit) Invokesexecutor.ExecutorService#awaitTermination(long, TimeUnit) awaitTermination(long, TimeUnit)uninterruptibly.static booleanawaitTerminationUninterruptibly(ExecutorService executor, Duration timeout) Invokesexecutor.ExecutorService#awaitTermination(long, TimeUnit) awaitTermination(long, TimeUnit)uninterruptibly.static voidInvokeslatch.CountDownLatch#await() await()uninterruptibly.static booleanawaitUninterruptibly(CountDownLatch latch, long timeout, TimeUnit unit) Invokeslatch.CountDownLatch#await(long, TimeUnit) await(timeout, unit)uninterruptibly.static booleanawaitUninterruptibly(CountDownLatch latch, Duration timeout) Invokeslatch.CountDownLatch#await(long, TimeUnit) await(timeout, unit)uninterruptibly.static booleanawaitUninterruptibly(Condition condition, long timeout, TimeUnit unit) Invokescondition.Condition#await(long, TimeUnit) await(timeout, unit)uninterruptibly.static booleanawaitUninterruptibly(Condition condition, Duration timeout) Invokescondition.Condition#await(long, TimeUnit) await(timeout, unit)uninterruptibly.static <V extends @Nullable Object>
VgetUninterruptibly(Future<V> future) Invokesfuture.Future#get() get()uninterruptibly.static <V extends @Nullable Object>
VgetUninterruptibly(Future<V> future, long timeout, TimeUnit unit) Invokesfuture.Future#get(long, TimeUnit) get(timeout, unit)uninterruptibly.static <V extends @Nullable Object>
VgetUninterruptibly(Future<V> future, Duration timeout) Invokesfuture.Future#get(long, TimeUnit) get(timeout, unit)uninterruptibly.static voidjoinUninterruptibly(Thread toJoin) InvokestoJoin.Thread#join() join()uninterruptibly.static voidjoinUninterruptibly(Thread toJoin, long timeout, TimeUnit unit) Invokesunit.TimeUnit#timedJoin(Thread, long) timedJoin(toJoin, timeout)uninterruptibly.static voidjoinUninterruptibly(Thread toJoin, Duration timeout) Invokesunit.TimeUnit#timedJoin(Thread, long) timedJoin(toJoin, timeout)uninterruptibly.static <E> voidputUninterruptibly(BlockingQueue<E> queue, E element) Invokesqueue.BlockingQueue#put(Object) put(element)uninterruptibly.static voidsleepUninterruptibly(long sleepFor, TimeUnit unit) Invokesunit.TimeUnit#sleep(long) sleep(sleepFor)uninterruptibly.static voidsleepUninterruptibly(Duration sleepFor) Invokesunit.TimeUnit#sleep(long) sleep(sleepFor)uninterruptibly.static <E> EtakeUninterruptibly(BlockingQueue<E> queue) Invokesqueue.BlockingQueue#take() take()uninterruptibly.static booleantryAcquireUninterruptibly(Semaphore semaphore, int permits, long timeout, TimeUnit unit) Invokessemaphore.Semaphore#tryAcquire(int, long, TimeUnit) tryAcquire(permits, timeout, unit)uninterruptibly.static booleantryAcquireUninterruptibly(Semaphore semaphore, int permits, Duration timeout) Invokessemaphore.Semaphore#tryAcquire(int, long, TimeUnit) tryAcquire(permits, timeout, unit)uninterruptibly.static booleantryAcquireUninterruptibly(Semaphore semaphore, long timeout, TimeUnit unit) Invokessemaphore.Semaphore#tryAcquire(int, long, TimeUnit) tryAcquire(1, timeout, unit)uninterruptibly.static booleantryAcquireUninterruptibly(Semaphore semaphore, Duration timeout) Invokessemaphore.Semaphore#tryAcquire(int, long, TimeUnit) tryAcquire(1, timeout, unit)uninterruptibly.static booleantryLockUninterruptibly(Lock lock, long timeout, TimeUnit unit) Invokeslock.Lock#tryLock(long, TimeUnit) tryLock(timeout, unit)uninterruptibly.static booleantryLockUninterruptibly(Lock lock, Duration timeout) Invokeslock.Lock#tryLock(long, TimeUnit) tryLock(timeout, unit)uninterruptibly.
-
Method Details
-
awaitUninterruptibly
Invokeslatch.CountDownLatch#await() await()uninterruptibly. -
awaitUninterruptibly
Invokeslatch.CountDownLatch#await(long, TimeUnit) await(timeout, unit)uninterruptibly.- Since:
- 28.0
-
awaitUninterruptibly
Invokeslatch.CountDownLatch#await(long, TimeUnit) await(timeout, unit)uninterruptibly. -
awaitUninterruptibly
Invokescondition.Condition#await(long, TimeUnit) await(timeout, unit)uninterruptibly.- Since:
- 28.0
-
awaitUninterruptibly
Invokescondition.Condition#await(long, TimeUnit) await(timeout, unit)uninterruptibly.- Since:
- 23.6
-
joinUninterruptibly
InvokestoJoin.Thread#join() join()uninterruptibly. -
joinUninterruptibly
Invokesunit.TimeUnit#timedJoin(Thread, long) timedJoin(toJoin, timeout)uninterruptibly.- Since:
- 28.0
-
joinUninterruptibly
Invokesunit.TimeUnit#timedJoin(Thread, long) timedJoin(toJoin, timeout)uninterruptibly. -
getUninterruptibly
@CanIgnoreReturnValue public static <V extends @Nullable Object> V getUninterruptibly(Future<V> future) throws ExecutionException Invokesfuture.Future#get() get()uninterruptibly.Similar methods:
- To retrieve a result from a
Futurethat is already done, useFutures#getDone Futures.getDone. - To treat
InterruptedExceptionuniformly with other exceptions, useFutures#getChecked(Future, Class) Futures.getChecked. - To get uninterruptibility and remove checked exceptions, use
Futures#getUnchecked.
- Throws:
ExecutionException- if the computation threw an exceptionCancellationException- if the computation was cancelled
- To retrieve a result from a
-
getUninterruptibly
@CanIgnoreReturnValue public static <V extends @Nullable Object> V getUninterruptibly(Future<V> future, Duration timeout) throws ExecutionException, TimeoutException Invokesfuture.Future#get(long, TimeUnit) get(timeout, unit)uninterruptibly.Similar methods:
- To retrieve a result from a
Futurethat is already done, useFutures#getDone Futures.getDone. - To treat
InterruptedExceptionuniformly with other exceptions, useFutures#getChecked(Future, Class, long, TimeUnit) Futures.getChecked. - To get uninterruptibility and remove checked exceptions, use
Futures#getUnchecked.
- Throws:
ExecutionException- if the computation threw an exceptionCancellationException- if the computation was cancelledTimeoutException- if the wait timed out- Since:
- 28.0
- To retrieve a result from a
-
getUninterruptibly
@CanIgnoreReturnValue public static <V extends @Nullable Object> V getUninterruptibly(Future<V> future, long timeout, TimeUnit unit) throws ExecutionException, TimeoutException Invokesfuture.Future#get(long, TimeUnit) get(timeout, unit)uninterruptibly.Similar methods:
- To retrieve a result from a
Futurethat is already done, useFutures#getDone Futures.getDone. - To treat
InterruptedExceptionuniformly with other exceptions, useFutures#getChecked(Future, Class, long, TimeUnit) Futures.getChecked. - To get uninterruptibility and remove checked exceptions, use
Futures#getUnchecked.
- Throws:
ExecutionException- if the computation threw an exceptionCancellationException- if the computation was cancelledTimeoutException- if the wait timed out
- To retrieve a result from a
-
takeUninterruptibly
Invokesqueue.BlockingQueue#take() take()uninterruptibly. -
putUninterruptibly
Invokesqueue.BlockingQueue#put(Object) 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
Invokesunit.TimeUnit#sleep(long) sleep(sleepFor)uninterruptibly.- Since:
- 28.0
-
sleepUninterruptibly
Invokesunit.TimeUnit#sleep(long) sleep(sleepFor)uninterruptibly. -
tryAcquireUninterruptibly
Invokessemaphore.Semaphore#tryAcquire(int, long, TimeUnit) tryAcquire(1, timeout, unit)uninterruptibly.- Since:
- 28.0
-
tryAcquireUninterruptibly
Invokessemaphore.Semaphore#tryAcquire(int, long, TimeUnit) tryAcquire(1, timeout, unit)uninterruptibly.- Since:
- 18.0
-
tryAcquireUninterruptibly
Invokessemaphore.Semaphore#tryAcquire(int, long, TimeUnit) tryAcquire(permits, timeout, unit)uninterruptibly.- Since:
- 28.0
-
tryAcquireUninterruptibly
public static boolean tryAcquireUninterruptibly(Semaphore semaphore, int permits, long timeout, TimeUnit unit) Invokessemaphore.Semaphore#tryAcquire(int, long, TimeUnit) tryAcquire(permits, timeout, unit)uninterruptibly.- Since:
- 18.0
-
tryLockUninterruptibly
Invokeslock.Lock#tryLock(long, TimeUnit) tryLock(timeout, unit)uninterruptibly.- Since:
- 30.0
-
tryLockUninterruptibly
Invokeslock.Lock#tryLock(long, TimeUnit) tryLock(timeout, unit)uninterruptibly.- Since:
- 30.0
-
awaitTerminationUninterruptibly
Invokesexecutor.ExecutorService#awaitTermination(long, TimeUnit) awaitTermination(long, TimeUnit)uninterruptibly with no timeout.- Since:
- 30.0
-
awaitTerminationUninterruptibly
Invokesexecutor.ExecutorService#awaitTermination(long, TimeUnit) awaitTermination(long, TimeUnit)uninterruptibly.- Since:
- 30.0
-
awaitTerminationUninterruptibly
public static boolean awaitTerminationUninterruptibly(ExecutorService executor, long timeout, TimeUnit unit) Invokesexecutor.ExecutorService#awaitTermination(long, TimeUnit) awaitTermination(long, TimeUnit)uninterruptibly.- Since:
- 30.0
-