com.google.common.util.concurrent
Class Uninterruptibles

java.lang.Object
  extended by com.google.common.util.concurrent.Uninterruptibles

@Beta
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

Method Summary
static void awaitUninterruptibly(java.util.concurrent.CountDownLatch latch)
          Invokes latch.await() uninterruptibly.
static boolean awaitUninterruptibly(java.util.concurrent.CountDownLatch latch, long timeout, java.util.concurrent.TimeUnit unit)
          Invokes latch.await(timeout, unit) uninterruptibly.
static
<V> V
getUninterruptibly(java.util.concurrent.Future<V> future)
          Invokes future.get() uninterruptibly.
static
<V> V
getUninterruptibly(java.util.concurrent.Future<V> future, long timeout, java.util.concurrent.TimeUnit unit)
          Invokes future.get(timeout, unit) uninterruptibly.
static void joinUninterruptibly(java.lang.Thread toJoin)
          Invokes toJoin.join() uninterruptibly.
static void joinUninterruptibly(java.lang.Thread toJoin, long timeout, java.util.concurrent.TimeUnit unit)
          Invokes unit.timedJoin(toJoin, timeout) uninterruptibly.
static
<E> void
putUninterruptibly(java.util.concurrent.BlockingQueue<E> queue, E element)
          Invokes queue.put(element) uninterruptibly.
static void sleepUninterruptibly(long sleepFor, java.util.concurrent.TimeUnit unit)
          Invokes unit.sleep(sleepFor) uninterruptibly.
static
<E> E
takeUninterruptibly(java.util.concurrent.BlockingQueue<E> queue)
          Invokes queue.take() uninterruptibly.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

awaitUninterruptibly

public static void awaitUninterruptibly(java.util.concurrent.CountDownLatch latch)
Invokes latch.await() uninterruptibly.


awaitUninterruptibly

public static boolean awaitUninterruptibly(java.util.concurrent.CountDownLatch latch,
                                           long timeout,
                                           java.util.concurrent.TimeUnit unit)
Invokes latch.await(timeout, unit) uninterruptibly.


joinUninterruptibly

public static void joinUninterruptibly(java.lang.Thread toJoin)
Invokes toJoin.join() uninterruptibly.


getUninterruptibly

public static <V> V getUninterruptibly(java.util.concurrent.Future<V> future)
                            throws java.util.concurrent.ExecutionException
Invokes future.get() uninterruptibly. To get uninterruptibility and remove checked exceptions, see Futures.getUnchecked(java.util.concurrent.Future).

If instead, you wish to treat InterruptedException uniformly with other exceptions, see Futures.get or Futures.makeChecked(com.google.common.util.concurrent.ListenableFuture, com.google.common.base.Function).

Throws:
java.util.concurrent.ExecutionException

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
Invokes future.get(timeout, unit) uninterruptibly.

If instead, you wish to treat InterruptedException uniformly with other exceptions, see Futures.get or Futures.makeChecked(com.google.common.util.concurrent.ListenableFuture, com.google.common.base.Function).

Throws:
java.util.concurrent.ExecutionException
java.util.concurrent.TimeoutException

joinUninterruptibly

public static void joinUninterruptibly(java.lang.Thread toJoin,
                                       long timeout,
                                       java.util.concurrent.TimeUnit unit)
Invokes unit.timedJoin(toJoin, timeout) uninterruptibly.


takeUninterruptibly

public static <E> E takeUninterruptibly(java.util.concurrent.BlockingQueue<E> queue)
Invokes queue.take() uninterruptibly.


putUninterruptibly

public static <E> void putUninterruptibly(java.util.concurrent.BlockingQueue<E> queue,
                                          E element)
Invokes queue.put(element) uninterruptibly.


sleepUninterruptibly

public static void sleepUninterruptibly(long sleepFor,
                                        java.util.concurrent.TimeUnit unit)
Invokes unit.sleep(sleepFor) uninterruptibly.