public interface com.google.common.util.concurrent.TimeLimiter
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: com.google.common.util.concurrent.TimeLimiter
  super_class: java.lang.Object
{
  public abstract <T> T newProxy(T, java.lang.Class<T>, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/lang/Object;>(TT;Ljava/lang/Class<TT;>;JLjava/util/concurrent/TimeUnit;)TT;
    MethodParameters:
                 Name  Flags
      target           
      interfaceType    
      timeoutDuration  
      timeoutUnit      

  public <T> T newProxy(T, java.lang.Class<T>, java.time.Duration);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/time/Duration;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.google.common.util.concurrent.TimeLimiter this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.Class interfaceType
        start local 3 // java.time.Duration timeout
         0: .line 125
            aload 0 /* this */
            aload 1 /* target */
            aload 2 /* interfaceType */
            aload 3 /* timeout */
            invokestatic com.google.common.util.concurrent.Internal.toNanosSaturated:(Ljava/time/Duration;)J
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface com.google.common.util.concurrent.TimeLimiter.newProxy:(Ljava/lang/Object;Ljava/lang/Class;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
            areturn
        end local 3 // java.time.Duration timeout
        end local 2 // java.lang.Class interfaceType
        end local 1 // java.lang.Object target
        end local 0 // com.google.common.util.concurrent.TimeLimiter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/google/common/util/concurrent/TimeLimiter;
            0    1     1         target  TT;
            0    1     2  interfaceType  Ljava/lang/Class<TT;>;
            0    1     3        timeout  Ljava/time/Duration;
    Signature: <T:Ljava/lang/Object;>(TT;Ljava/lang/Class<TT;>;Ljava/time/Duration;)TT;
    MethodParameters:
               Name  Flags
      target         
      interfaceType  
      timeout        

  public abstract <T> T callWithTimeout(java.util.concurrent.Callable<T>, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.concurrent.TimeoutException, java.lang.InterruptedException, java.util.concurrent.ExecutionException
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;JLjava/util/concurrent/TimeUnit;)TT;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
                 Name  Flags
      callable         
      timeoutDuration  
      timeoutUnit      

  public <T> T callWithTimeout(java.util.concurrent.Callable<T>, java.time.Duration);
    descriptor: (Ljava/util/concurrent/Callable;Ljava/time/Duration;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.google.common.util.concurrent.TimeLimiter this
        start local 1 // java.util.concurrent.Callable callable
        start local 2 // java.time.Duration timeout
         0: .line 169
            aload 0 /* this */
            aload 1 /* callable */
            aload 2 /* timeout */
            invokestatic com.google.common.util.concurrent.Internal.toNanosSaturated:(Ljava/time/Duration;)J
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface com.google.common.util.concurrent.TimeLimiter.callWithTimeout:(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
            areturn
        end local 2 // java.time.Duration timeout
        end local 1 // java.util.concurrent.Callable callable
        end local 0 // com.google.common.util.concurrent.TimeLimiter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/google/common/util/concurrent/TimeLimiter;
            0    1     1  callable  Ljava/util/concurrent/Callable<TT;>;
            0    1     2   timeout  Ljava/time/Duration;
    Exceptions:
      throws java.util.concurrent.TimeoutException, java.lang.InterruptedException, java.util.concurrent.ExecutionException
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;Ljava/time/Duration;)TT;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
          Name  Flags
      callable  
      timeout   

  public abstract <T> T callUninterruptiblyWithTimeout(java.util.concurrent.Callable<T>, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.concurrent.TimeoutException, java.util.concurrent.ExecutionException
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;JLjava/util/concurrent/TimeUnit;)TT;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
                 Name  Flags
      callable         
      timeoutDuration  
      timeoutUnit      

  public <T> T callUninterruptiblyWithTimeout(java.util.concurrent.Callable<T>, java.time.Duration);
    descriptor: (Ljava/util/concurrent/Callable;Ljava/time/Duration;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.google.common.util.concurrent.TimeLimiter this
        start local 1 // java.util.concurrent.Callable callable
        start local 2 // java.time.Duration timeout
         0: .line 218
            aload 0 /* this */
         1: .line 219
            aload 1 /* callable */
            aload 2 /* timeout */
            invokestatic com.google.common.util.concurrent.Internal.toNanosSaturated:(Ljava/time/Duration;)J
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
         2: .line 218
            invokeinterface com.google.common.util.concurrent.TimeLimiter.callUninterruptiblyWithTimeout:(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
            areturn
        end local 2 // java.time.Duration timeout
        end local 1 // java.util.concurrent.Callable callable
        end local 0 // com.google.common.util.concurrent.TimeLimiter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/google/common/util/concurrent/TimeLimiter;
            0    3     1  callable  Ljava/util/concurrent/Callable<TT;>;
            0    3     2   timeout  Ljava/time/Duration;
    Exceptions:
      throws java.util.concurrent.TimeoutException, java.util.concurrent.ExecutionException
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;Ljava/time/Duration;)TT;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
          Name  Flags
      callable  
      timeout   

  public abstract void runWithTimeout(java.lang.Runnable, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.concurrent.TimeoutException, java.lang.InterruptedException
    MethodParameters:
                 Name  Flags
      runnable         
      timeoutDuration  
      timeoutUnit      

  public void runWithTimeout(java.lang.Runnable, java.time.Duration);
    descriptor: (Ljava/lang/Runnable;Ljava/time/Duration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.google.common.util.concurrent.TimeLimiter this
        start local 1 // java.lang.Runnable runnable
        start local 2 // java.time.Duration timeout
         0: .line 257
            aload 0 /* this */
            aload 1 /* runnable */
            aload 2 /* timeout */
            invokestatic com.google.common.util.concurrent.Internal.toNanosSaturated:(Ljava/time/Duration;)J
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface com.google.common.util.concurrent.TimeLimiter.runWithTimeout:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)V
         1: .line 258
            return
        end local 2 // java.time.Duration timeout
        end local 1 // java.lang.Runnable runnable
        end local 0 // com.google.common.util.concurrent.TimeLimiter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/google/common/util/concurrent/TimeLimiter;
            0    2     1  runnable  Ljava/lang/Runnable;
            0    2     2   timeout  Ljava/time/Duration;
    Exceptions:
      throws java.util.concurrent.TimeoutException, java.lang.InterruptedException
    MethodParameters:
          Name  Flags
      runnable  
      timeout   

  public abstract void runUninterruptiblyWithTimeout(java.lang.Runnable, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.concurrent.TimeoutException
    MethodParameters:
                 Name  Flags
      runnable         
      timeoutDuration  
      timeoutUnit      

  public void runUninterruptiblyWithTimeout(java.lang.Runnable, java.time.Duration);
    descriptor: (Ljava/lang/Runnable;Ljava/time/Duration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.google.common.util.concurrent.TimeLimiter this
        start local 1 // java.lang.Runnable runnable
        start local 2 // java.time.Duration timeout
         0: .line 299
            aload 0 /* this */
            aload 1 /* runnable */
            aload 2 /* timeout */
            invokestatic com.google.common.util.concurrent.Internal.toNanosSaturated:(Ljava/time/Duration;)J
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface com.google.common.util.concurrent.TimeLimiter.runUninterruptiblyWithTimeout:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)V
         1: .line 300
            return
        end local 2 // java.time.Duration timeout
        end local 1 // java.lang.Runnable runnable
        end local 0 // com.google.common.util.concurrent.TimeLimiter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/google/common/util/concurrent/TimeLimiter;
            0    2     1  runnable  Ljava/lang/Runnable;
            0    2     2   timeout  Ljava/time/Duration;
    Exceptions:
      throws java.util.concurrent.TimeoutException
    MethodParameters:
          Name  Flags
      runnable  
      timeout   
}
SourceFile: "TimeLimiter.java"
    RuntimeVisibleAnnotations: 
      com.google.errorprone.annotations.DoNotMock(value = "Use FakeTimeLimiter")
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()