Class 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

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      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

        equals, 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,
                                               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<V>, com.google.common.base.Function<java.lang.Exception, X>).

        Throws:
        java.util.concurrent.ExecutionException - if the computation threw an exception
        CancellationException - if the computation was cancelled
        java.util.concurrent.TimeoutException - if the wait timed out
      • 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.
        Throws:
        java.lang.ClassCastException - if the class of the specified element prevents it from being added to the given queue
        java.lang.IllegalArgumentException - if some property of the specified element prevents it from being added to the given queue
      • sleepUninterruptibly

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