public final class com.google.common.util.concurrent.Monitor
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.util.concurrent.Monitor
super_class: java.lang.Object
{
private final boolean fair;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.ReentrantLock lock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.google.common.util.concurrent.Monitor$Guard activeGuards;
descriptor: Lcom/google/common/util/concurrent/Monitor$Guard;
flags: (0x0002) ACC_PRIVATE
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "lock")
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokespecial com.google.common.util.concurrent.Monitor.<init>:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/Monitor;
public void <init>(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield com.google.common.util.concurrent.Monitor.activeGuards:Lcom/google/common/util/concurrent/Monitor$Guard;
2: aload 0
iload 1
putfield com.google.common.util.concurrent.Monitor.fair:Z
3: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
iload 1
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:(Z)V
putfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/util/concurrent/Monitor;
0 5 1 fair Z
MethodParameters:
Name Flags
fair
public com.google.common.util.concurrent.Monitor$Guard newGuard(java.util.function.BooleanSupplier);
descriptor: (Ljava/util/function/BooleanSupplier;)Lcom/google/common/util/concurrent/Monitor$Guard;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "isSatisfied"
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new com.google.common.util.concurrent.Monitor$1
dup
aload 0
aload 0
aload 1
invokespecial com.google.common.util.concurrent.Monitor$1.<init>:(Lcom/google/common/util/concurrent/Monitor;Lcom/google/common/util/concurrent/Monitor;Ljava/util/function/BooleanSupplier;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/Monitor;
0 2 1 isSatisfied Ljava/util/function/BooleanSupplier;
MethodParameters:
Name Flags
isSatisfied final
public void enter();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/Monitor;
public boolean enter(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=14, args_size=3
start local 0 start local 1 start local 3 0: lload 1
aload 3
invokestatic com.google.common.util.concurrent.Monitor.toSafeNanos:(JLjava/util/concurrent/TimeUnit;)J
lstore 4
start local 4 1: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 6
start local 6 2: aload 0
getfield com.google.common.util.concurrent.Monitor.fair:Z
ifne 4
aload 6
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals: long java.util.concurrent.locks.ReentrantLock
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
istore 7
start local 7 5: invokestatic java.lang.System.nanoTime:()J
lstore 8
start local 8 6: lload 4
lstore 10
start local 10 7: StackMap locals: int long long
StackMap stack:
aload 6
lload 10
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:(JLjava/util/concurrent/TimeUnit;)Z
istore 13
8: iload 7
ifeq 10
9: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
10: StackMap locals: com.google.common.util.concurrent.Monitor long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock int long long top int
StackMap stack:
iload 13
ireturn
11: StackMap locals: com.google.common.util.concurrent.Monitor long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock int long long
StackMap stack: java.lang.InterruptedException
pop
12: iconst_1
istore 7
13: lload 8
lload 4
invokestatic com.google.common.util.concurrent.Monitor.remainingNanos:(JJ)J
lstore 10
14: goto 7
end local 10 end local 8 15: StackMap locals: com.google.common.util.concurrent.Monitor long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock int
StackMap stack: java.lang.Throwable
astore 12
16: iload 7
ifeq 18
17: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
18: StackMap locals: com.google.common.util.concurrent.Monitor long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock int top top top top java.lang.Throwable
StackMap stack:
aload 12
athrow
end local 7 end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/google/common/util/concurrent/Monitor;
0 19 1 time J
0 19 3 unit Ljava/util/concurrent/TimeUnit;
1 19 4 timeoutNanos J
2 19 6 lock Ljava/util/concurrent/locks/ReentrantLock;
5 19 7 interrupted Z
6 15 8 startTime J
7 15 10 remainingNanos J
Exception table:
from to target type
7 8 11 Class java.lang.InterruptedException
5 8 15 any
11 15 15 any
MethodParameters:
Name Flags
time
unit
public void enterInterruptibly();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lockInterruptibly:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/Monitor;
Exceptions:
throws java.lang.InterruptedException
public boolean enterInterruptibly(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
lload 1
aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:(JLjava/util/concurrent/TimeUnit;)Z
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/Monitor;
0 1 1 time J
0 1 3 unit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
time
unit
public boolean tryEnter();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/Monitor;
public void enterWhen(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpeq 2
1: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 3: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
istore 3
start local 3 4: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lockInterruptibly:()V
5: iconst_0
istore 4
start local 4 6: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifne 8
7: aload 0
aload 1
iload 3
invokevirtual com.google.common.util.concurrent.Monitor.await:(Lcom/google/common/util/concurrent/Monitor$Guard;Z)V
8: StackMap locals: java.util.concurrent.locks.ReentrantLock int int
StackMap stack:
iconst_1
istore 4
9: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 5
11: iload 4
ifne 13
12: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
13: StackMap locals: java.lang.Throwable
StackMap stack:
aload 5
athrow
14: StackMap locals:
StackMap stack:
iload 4
ifne 16
15: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
16: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/google/common/util/concurrent/Monitor;
0 17 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
3 17 2 lock Ljava/util/concurrent/locks/ReentrantLock;
4 17 3 signalBeforeWaiting Z
6 17 4 satisfied Z
Exception table:
from to target type
6 10 10 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
guard
public boolean enterWhen(com.google.common.util.concurrent.Monitor$Guard, long, java.util.concurrent.TimeUnit);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 4 0: lload 2
aload 4
invokestatic com.google.common.util.concurrent.Monitor.toSafeNanos:(JLjava/util/concurrent/TimeUnit;)J
lstore 5
start local 5 1: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpeq 3
2: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
3: StackMap locals: long
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 7
start local 7 4: aload 7
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
istore 8
start local 8 5: lconst_0
lstore 9
start local 9 6: aload 0
getfield com.google.common.util.concurrent.Monitor.fair:Z
ifne 11
7: invokestatic java.lang.Thread.interrupted:()Z
ifeq 9
8: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
9: StackMap locals: java.util.concurrent.locks.ReentrantLock int long
StackMap stack:
aload 7
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
ifeq 11
10: goto 14
11: StackMap locals:
StackMap stack:
lload 5
invokestatic com.google.common.util.concurrent.Monitor.initNanoTime:(J)J
lstore 9
12: aload 7
lload 2
aload 4
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:(JLjava/util/concurrent/TimeUnit;)Z
ifne 14
13: iconst_0
ireturn
14: StackMap locals:
StackMap stack:
iconst_0
istore 11
start local 11 15: iconst_1
istore 12
start local 12 16: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifne 25
17: aload 0
18: aload 1
19: lload 9
lconst_0
lcmp
ifne 20
lload 5
goto 21
StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock int long int int
StackMap stack: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard
20: lload 9
lload 5
invokestatic com.google.common.util.concurrent.Monitor.remainingNanos:(JJ)J
21: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock int long int int
StackMap stack: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long
iload 8
22: invokevirtual com.google.common.util.concurrent.Monitor.awaitNanos:(Lcom/google/common/util/concurrent/Monitor$Guard;JZ)Z
23: ifne 25
24: iconst_0
goto 26
StackMap locals:
StackMap stack:
25: iconst_1
StackMap locals:
StackMap stack: int
26: istore 11
27: iconst_0
istore 12
28: iload 11
istore 14
29: iload 11
ifne 37
30: iload 12
ifeq 36
iload 8
ifne 36
31: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.signalNextWaiter:()V
32: goto 36
StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock int long int int top int
StackMap stack: java.lang.Throwable
33: astore 15
34: aload 7
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
35: aload 15
athrow
36: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
37: StackMap locals:
StackMap stack:
iload 14
ireturn
38: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock int long int int
StackMap stack: java.lang.Throwable
astore 13
39: iload 11
ifne 47
40: iload 12
ifeq 46
iload 8
ifne 46
41: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.signalNextWaiter:()V
42: goto 46
StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock int long int int java.lang.Throwable
StackMap stack: java.lang.Throwable
43: astore 15
44: aload 7
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
45: aload 15
athrow
46: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
47: StackMap locals:
StackMap stack:
aload 13
athrow
end local 12 end local 11 end local 9 end local 8 end local 7 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 this Lcom/google/common/util/concurrent/Monitor;
0 48 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
0 48 2 time J
0 48 4 unit Ljava/util/concurrent/TimeUnit;
1 48 5 timeoutNanos J
4 48 7 lock Ljava/util/concurrent/locks/ReentrantLock;
5 48 8 reentrant Z
6 48 9 startTime J
15 48 11 satisfied Z
16 48 12 threw Z
Exception table:
from to target type
30 33 33 any
16 29 38 any
40 43 43 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
guard
time
unit
public void enterWhenUninterruptibly(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpeq 2
1: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 3: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
istore 3
start local 3 4: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
5: iconst_0
istore 4
start local 4 6: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifne 8
7: aload 0
aload 1
iload 3
invokevirtual com.google.common.util.concurrent.Monitor.awaitUninterruptibly:(Lcom/google/common/util/concurrent/Monitor$Guard;Z)V
8: StackMap locals: java.util.concurrent.locks.ReentrantLock int int
StackMap stack:
iconst_1
istore 4
9: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 5
11: iload 4
ifne 13
12: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
13: StackMap locals: java.lang.Throwable
StackMap stack:
aload 5
athrow
14: StackMap locals:
StackMap stack:
iload 4
ifne 16
15: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
16: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/google/common/util/concurrent/Monitor;
0 17 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
3 17 2 lock Ljava/util/concurrent/locks/ReentrantLock;
4 17 3 signalBeforeWaiting Z
6 17 4 satisfied Z
Exception table:
from to target type
6 10 10 any
MethodParameters:
Name Flags
guard
public boolean enterWhenUninterruptibly(com.google.common.util.concurrent.Monitor$Guard, long, java.util.concurrent.TimeUnit);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=18, args_size=4
start local 0 start local 1 start local 2 start local 4 0: lload 2
aload 4
invokestatic com.google.common.util.concurrent.Monitor.toSafeNanos:(JLjava/util/concurrent/TimeUnit;)J
lstore 5
start local 5 1: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpeq 3
2: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
3: StackMap locals: long
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 7
start local 7 4: lconst_0
lstore 8
start local 8 5: aload 7
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
istore 10
start local 10 6: invokestatic java.lang.Thread.interrupted:()Z
istore 11
start local 11 7: aload 0
getfield com.google.common.util.concurrent.Monitor.fair:Z
ifne 8
aload 7
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
ifne 19
8: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock long int int
StackMap stack:
lload 5
invokestatic com.google.common.util.concurrent.Monitor.initNanoTime:(J)J
lstore 8
9: lload 5
lstore 12
start local 12 10: StackMap locals: long
StackMap stack:
aload 7
lload 12
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:(JLjava/util/concurrent/TimeUnit;)Z
ifeq 12
11: goto 19
12: StackMap locals:
StackMap stack:
iload 11
ifeq 14
13: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
14: StackMap locals:
StackMap stack:
iconst_0
ireturn
15: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
16: iconst_1
istore 11
17: lload 8
lload 5
invokestatic com.google.common.util.concurrent.Monitor.remainingNanos:(JJ)J
lstore 12
18: goto 10
end local 12 19: StackMap locals:
StackMap stack:
iconst_0
istore 12
start local 12 20: StackMap locals: int
StackMap stack:
aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifeq 23
21: iconst_1
istore 12
22: goto 29
23: StackMap locals:
StackMap stack:
lload 8
lconst_0
lcmp
ifne 27
24: lload 5
invokestatic com.google.common.util.concurrent.Monitor.initNanoTime:(J)J
lstore 8
25: lload 5
lstore 13
start local 13 26: goto 28
end local 13 27: StackMap locals:
StackMap stack:
lload 8
lload 5
invokestatic com.google.common.util.concurrent.Monitor.remainingNanos:(JJ)J
lstore 13
start local 13 28: StackMap locals: long
StackMap stack:
aload 0
aload 1
lload 13
iload 10
invokevirtual com.google.common.util.concurrent.Monitor.awaitNanos:(Lcom/google/common/util/concurrent/Monitor$Guard;JZ)Z
istore 12
end local 13 29: StackMap locals:
StackMap stack:
iload 12
istore 16
30: iload 12
ifne 32
31: aload 7
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
32: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock long int int int top top top int
StackMap stack:
iload 11
ifeq 34
33: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
34: StackMap locals:
StackMap stack:
iload 16
ireturn
35: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock long int int int
StackMap stack: java.lang.InterruptedException
pop
36: iconst_1
istore 11
37: iconst_0
istore 10
38: goto 20
39: StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
40: iload 12
ifne 42
41: aload 7
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
42: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock long int int int top top java.lang.Throwable
StackMap stack:
aload 15
athrow
end local 12 43: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock long int int
StackMap stack: java.lang.Throwable
astore 17
44: iload 11
ifeq 46
45: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
46: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock long int int top top top top top java.lang.Throwable
StackMap stack:
aload 17
athrow
end local 11 end local 10 end local 8 end local 7 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lcom/google/common/util/concurrent/Monitor;
0 47 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
0 47 2 time J
0 47 4 unit Ljava/util/concurrent/TimeUnit;
1 47 5 timeoutNanos J
4 47 7 lock Ljava/util/concurrent/locks/ReentrantLock;
5 47 8 startTime J
6 47 10 signalBeforeWaiting Z
7 47 11 interrupted Z
10 19 12 remainingNanos J
20 43 12 satisfied Z
26 27 13 remainingNanos J
28 29 13 remainingNanos J
Exception table:
from to target type
10 11 15 Class java.lang.InterruptedException
20 30 35 Class java.lang.InterruptedException
20 30 39 any
35 39 39 any
7 12 43 any
15 32 43 any
35 43 43 any
MethodParameters:
Name Flags
guard
time
unit
public boolean enterIf(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpeq 2
1: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 3: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
4: iconst_0
istore 3
start local 3 5: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
dup
istore 3
istore 5
6: iload 3
ifne 8
7: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard java.util.concurrent.locks.ReentrantLock int top int
StackMap stack:
iload 5
ireturn
9: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard java.util.concurrent.locks.ReentrantLock int
StackMap stack: java.lang.Throwable
astore 4
10: iload 3
ifne 12
11: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: StackMap locals: java.lang.Throwable
StackMap stack:
aload 4
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/common/util/concurrent/Monitor;
0 13 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
3 13 2 lock Ljava/util/concurrent/locks/ReentrantLock;
5 13 3 satisfied Z
Exception table:
from to target type
5 6 9 any
MethodParameters:
Name Flags
guard
public boolean enterIf(com.google.common.util.concurrent.Monitor$Guard, long, java.util.concurrent.TimeUnit);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpeq 2
1: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
lload 2
aload 4
invokevirtual com.google.common.util.concurrent.Monitor.enter:(JLjava/util/concurrent/TimeUnit;)Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 5: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
dup
istore 5
istore 7
6: iload 5
ifne 8
7: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit int top int
StackMap stack:
iload 7
ireturn
9: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit int
StackMap stack: java.lang.Throwable
astore 6
10: iload 5
ifne 12
11: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: StackMap locals: java.lang.Throwable
StackMap stack:
aload 6
athrow
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/common/util/concurrent/Monitor;
0 13 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
0 13 2 time J
0 13 4 unit Ljava/util/concurrent/TimeUnit;
5 13 5 satisfied Z
Exception table:
from to target type
5 6 9 any
MethodParameters:
Name Flags
guard
time
unit
public boolean enterIfInterruptibly(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpeq 2
1: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 3: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lockInterruptibly:()V
4: iconst_0
istore 3
start local 3 5: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
dup
istore 3
istore 5
6: iload 3
ifne 8
7: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard java.util.concurrent.locks.ReentrantLock int top int
StackMap stack:
iload 5
ireturn
9: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard java.util.concurrent.locks.ReentrantLock int
StackMap stack: java.lang.Throwable
astore 4
10: iload 3
ifne 12
11: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: StackMap locals: java.lang.Throwable
StackMap stack:
aload 4
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/common/util/concurrent/Monitor;
0 13 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
3 13 2 lock Ljava/util/concurrent/locks/ReentrantLock;
5 13 3 satisfied Z
Exception table:
from to target type
5 6 9 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
guard
public boolean enterIfInterruptibly(com.google.common.util.concurrent.Monitor$Guard, long, java.util.concurrent.TimeUnit);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpeq 2
1: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 5
start local 5 3: aload 5
lload 2
aload 4
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:(JLjava/util/concurrent/TimeUnit;)Z
ifne 5
4: iconst_0
ireturn
5: StackMap locals: java.util.concurrent.locks.ReentrantLock
StackMap stack:
iconst_0
istore 6
start local 6 6: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
dup
istore 6
istore 8
7: iload 6
ifne 9
8: aload 5
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit java.util.concurrent.locks.ReentrantLock int top int
StackMap stack:
iload 8
ireturn
10: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit java.util.concurrent.locks.ReentrantLock int
StackMap stack: java.lang.Throwable
astore 7
11: iload 6
ifne 13
12: aload 5
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: StackMap locals: java.lang.Throwable
StackMap stack:
aload 7
athrow
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/google/common/util/concurrent/Monitor;
0 14 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
0 14 2 time J
0 14 4 unit Ljava/util/concurrent/TimeUnit;
3 14 5 lock Ljava/util/concurrent/locks/ReentrantLock;
6 14 6 satisfied Z
Exception table:
from to target type
6 7 10 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
guard
time
unit
public boolean tryEnterIf(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpeq 2
1: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 3: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
ifne 5
4: iconst_0
ireturn
5: StackMap locals: java.util.concurrent.locks.ReentrantLock
StackMap stack:
iconst_0
istore 3
start local 3 6: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
dup
istore 3
istore 5
7: iload 3
ifne 9
8: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard java.util.concurrent.locks.ReentrantLock int top int
StackMap stack:
iload 5
ireturn
10: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard java.util.concurrent.locks.ReentrantLock int
StackMap stack: java.lang.Throwable
astore 4
11: iload 3
ifne 13
12: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: StackMap locals: java.lang.Throwable
StackMap stack:
aload 4
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/google/common/util/concurrent/Monitor;
0 14 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
3 14 2 lock Ljava/util/concurrent/locks/ReentrantLock;
6 14 3 satisfied Z
Exception table:
from to target type
6 7 10 any
MethodParameters:
Name Flags
guard
public void waitFor(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
iand
ifne 4
3: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifne 6
5: aload 0
aload 1
iconst_1
invokevirtual com.google.common.util.concurrent.Monitor.await:(Lcom/google/common/util/concurrent/Monitor$Guard;Z)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/util/concurrent/Monitor;
0 7 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
guard
public boolean waitFor(com.google.common.util.concurrent.Monitor$Guard, long, java.util.concurrent.TimeUnit);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 4 0: lload 2
aload 4
invokestatic com.google.common.util.concurrent.Monitor.toSafeNanos:(JLjava/util/concurrent/TimeUnit;)J
lstore 5
start local 5 1: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpne 2
iconst_1
goto 3
StackMap locals: long
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
iand
ifne 5
4: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifeq 7
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
ifeq 9
8: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 5
iconst_1
invokevirtual com.google.common.util.concurrent.Monitor.awaitNanos:(Lcom/google/common/util/concurrent/Monitor$Guard;JZ)Z
ireturn
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/common/util/concurrent/Monitor;
0 10 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
0 10 2 time J
0 10 4 unit Ljava/util/concurrent/TimeUnit;
1 10 5 timeoutNanos J
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
guard
time
unit
public void waitForUninterruptibly(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
iand
ifne 4
3: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifne 6
5: aload 0
aload 1
iconst_1
invokevirtual com.google.common.util.concurrent.Monitor.awaitUninterruptibly:(Lcom/google/common/util/concurrent/Monitor$Guard;Z)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/util/concurrent/Monitor;
0 7 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
MethodParameters:
Name Flags
guard
public boolean waitForUninterruptibly(com.google.common.util.concurrent.Monitor$Guard, long, java.util.concurrent.TimeUnit);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=15, args_size=4
start local 0 start local 1 start local 2 start local 4 0: lload 2
aload 4
invokestatic com.google.common.util.concurrent.Monitor.toSafeNanos:(JLjava/util/concurrent/TimeUnit;)J
lstore 5
start local 5 1: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpne 2
iconst_1
goto 3
StackMap locals: long
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
iand
ifne 5
4: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifeq 7
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
iconst_1
istore 7
start local 7 8: lload 5
invokestatic com.google.common.util.concurrent.Monitor.initNanoTime:(J)J
lstore 8
start local 8 9: invokestatic java.lang.Thread.interrupted:()Z
istore 10
start local 10 10: lload 5
lstore 11
start local 11 11: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long int long int long
StackMap stack:
aload 0
aload 1
lload 11
iload 7
invokevirtual com.google.common.util.concurrent.Monitor.awaitNanos:(Lcom/google/common/util/concurrent/Monitor$Guard;JZ)Z
istore 14
12: iload 10
ifeq 14
13: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
14: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long int long int long top int
StackMap stack:
iload 14
ireturn
15: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long int long int long
StackMap stack: java.lang.InterruptedException
pop
16: iconst_1
istore 10
17: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifeq 21
18: iload 10
ifeq 20
19: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
20: StackMap locals:
StackMap stack:
iconst_1
ireturn
21: StackMap locals:
StackMap stack:
iconst_0
istore 7
22: lload 8
lload 5
invokestatic com.google.common.util.concurrent.Monitor.remainingNanos:(JJ)J
lstore 11
23: goto 11
end local 11 24: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long int long int
StackMap stack: java.lang.Throwable
astore 13
25: iload 10
ifeq 27
26: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
27: StackMap locals: com.google.common.util.concurrent.Monitor com.google.common.util.concurrent.Monitor$Guard long java.util.concurrent.TimeUnit long int long int top top java.lang.Throwable
StackMap stack:
aload 13
athrow
end local 10 end local 8 end local 7 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/google/common/util/concurrent/Monitor;
0 28 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
0 28 2 time J
0 28 4 unit Ljava/util/concurrent/TimeUnit;
1 28 5 timeoutNanos J
8 28 7 signalBeforeWaiting Z
9 28 8 startTime J
10 28 10 interrupted Z
11 24 11 remainingNanos J
Exception table:
from to target type
11 12 15 Class java.lang.InterruptedException
10 12 24 any
15 18 24 any
21 24 24 any
MethodParameters:
Name Flags
guard
time
unit
public void leave();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 1
start local 1 1: aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.getHoldCount:()I
iconst_1
if_icmpne 7
2: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.signalNextWaiter:()V
3: goto 7
StackMap locals: com.google.common.util.concurrent.Monitor java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
4: astore 2
5: aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 2
athrow
7: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/util/concurrent/Monitor;
1 9 1 lock Ljava/util/concurrent/locks/ReentrantLock;
Exception table:
from to target type
1 4 4 any
public boolean isFair();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.fair:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/Monitor;
public boolean isOccupied();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isLocked:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/Monitor;
public boolean isOccupiedByCurrentThread();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/Monitor;
public int getOccupiedDepth();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.getHoldCount:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/Monitor;
public int getQueueLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.getQueueLength:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/Monitor;
public boolean hasQueuedThreads();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.hasQueuedThreads:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/Monitor;
public boolean hasQueuedThread(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.hasQueuedThread:(Ljava/lang/Thread;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/Monitor;
0 1 1 thread Ljava/lang/Thread;
MethodParameters:
Name Flags
thread
public boolean hasWaiters(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.getWaitQueueLength:(Lcom/google/common/util/concurrent/Monitor$Guard;)I
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/Monitor;
0 2 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
MethodParameters:
Name Flags
guard
public int getWaitQueueLength(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
if_acmpeq 2
1: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.waiterCount:I
istore 3
4: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
5: iload 3
ireturn
6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
7: aload 0
getfield com.google.common.util.concurrent.Monitor.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/util/concurrent/Monitor;
0 9 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
Exception table:
from to target type
3 4 6 any
MethodParameters:
Name Flags
guard
private static long toSafeNanos(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 2 0: aload 2
lload 0
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lstore 3
start local 3 1: lload 3
lconst_0
lcmp
ifgt 3
2: lconst_0
goto 5
3: StackMap locals: long
StackMap stack:
lload 3
ldc 6917529027641081853
lcmp
ifle 4
ldc 6917529027641081853
goto 5
StackMap locals:
StackMap stack:
4: lload 3
5: StackMap locals:
StackMap stack: long
lreturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 time J
0 6 2 unit Ljava/util/concurrent/TimeUnit;
1 6 3 timeoutNanos J
MethodParameters:
Name Flags
time
unit
private static long initNanoTime(long);
descriptor: (J)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: lload 0
lconst_0
lcmp
ifgt 2
1: lconst_0
lreturn
2: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 2
start local 2 3: lload 2
lconst_0
lcmp
ifne 4
lconst_1
goto 5
StackMap locals: long
StackMap stack:
4: lload 2
StackMap locals:
StackMap stack: long
5: lreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 timeoutNanos J
3 6 2 startTime J
MethodParameters:
Name Flags
timeoutNanos
private static long remainingNanos(long, long);
descriptor: (JJ)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 2 0: lload 2
lconst_0
lcmp
ifgt 1
lconst_0
goto 2
StackMap locals:
StackMap stack:
1: lload 2
invokestatic java.lang.System.nanoTime:()J
lload 0
lsub
lsub
StackMap locals:
StackMap stack: long
2: lreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 startTime J
0 3 2 timeoutNanos J
MethodParameters:
Name Flags
startTime
timeoutNanos
private void signalNextWaiter();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.activeGuards:Lcom/google/common/util/concurrent/Monitor$Guard;
astore 1
start local 1 1: goto 6
2: StackMap locals: com.google.common.util.concurrent.Monitor$Guard
StackMap stack:
aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.isSatisfied:(Lcom/google/common/util/concurrent/Monitor$Guard;)Z
ifeq 5
3: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.condition:Ljava/util/concurrent/locks/Condition;
invokeinterface java.util.concurrent.locks.Condition.signal:()V
4: goto 7
5: StackMap locals:
StackMap stack:
aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.next:Lcom/google/common/util/concurrent/Monitor$Guard;
astore 1
StackMap locals:
StackMap stack:
6: aload 1
ifnonnull 2
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/util/concurrent/Monitor;
1 7 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "lock")
private boolean isSatisfied(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
1: ireturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 3: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.signalAllWaiters:()V
4: aload 2
invokestatic com.google.common.base.Throwables.propagate:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/util/concurrent/Monitor;
0 5 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
3 5 2 throwable Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "lock")
MethodParameters:
Name Flags
guard
private void signalAllWaiters();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.Monitor.activeGuards:Lcom/google/common/util/concurrent/Monitor$Guard;
astore 1
start local 1 1: goto 4
2: StackMap locals: com.google.common.util.concurrent.Monitor$Guard
StackMap stack:
aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.condition:Ljava/util/concurrent/locks/Condition;
invokeinterface java.util.concurrent.locks.Condition.signalAll:()V
3: aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.next:Lcom/google/common/util/concurrent/Monitor$Guard;
astore 1
StackMap locals:
StackMap stack:
4: aload 1
ifnonnull 2
end local 1 5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/util/concurrent/Monitor;
1 5 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "lock")
private void beginWaitingFor(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
dup
getfield com.google.common.util.concurrent.Monitor$Guard.waiterCount:I
dup_x1
iconst_1
iadd
putfield com.google.common.util.concurrent.Monitor$Guard.waiterCount:I
istore 2
start local 2 1: iload 2
ifne 4
2: aload 1
aload 0
getfield com.google.common.util.concurrent.Monitor.activeGuards:Lcom/google/common/util/concurrent/Monitor$Guard;
putfield com.google.common.util.concurrent.Monitor$Guard.next:Lcom/google/common/util/concurrent/Monitor$Guard;
3: aload 0
aload 1
putfield com.google.common.util.concurrent.Monitor.activeGuards:Lcom/google/common/util/concurrent/Monitor$Guard;
4: StackMap locals: int
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/util/concurrent/Monitor;
0 5 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
1 5 2 waiters I
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "lock")
MethodParameters:
Name Flags
guard
private void endWaitingFor(com.google.common.util.concurrent.Monitor$Guard);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
dup
getfield com.google.common.util.concurrent.Monitor$Guard.waiterCount:I
iconst_1
isub
dup_x1
putfield com.google.common.util.concurrent.Monitor$Guard.waiterCount:I
istore 2
start local 2 1: iload 2
ifne 12
2: aload 0
getfield com.google.common.util.concurrent.Monitor.activeGuards:Lcom/google/common/util/concurrent/Monitor$Guard;
astore 3
start local 3 3: aconst_null
astore 4
start local 4 4: StackMap locals: int com.google.common.util.concurrent.Monitor$Guard com.google.common.util.concurrent.Monitor$Guard
StackMap stack:
aload 3
aload 1
if_acmpne 11
5: aload 4
ifnonnull 8
6: aload 0
aload 3
getfield com.google.common.util.concurrent.Monitor$Guard.next:Lcom/google/common/util/concurrent/Monitor$Guard;
putfield com.google.common.util.concurrent.Monitor.activeGuards:Lcom/google/common/util/concurrent/Monitor$Guard;
7: goto 9
8: StackMap locals:
StackMap stack:
aload 4
aload 3
getfield com.google.common.util.concurrent.Monitor$Guard.next:Lcom/google/common/util/concurrent/Monitor$Guard;
putfield com.google.common.util.concurrent.Monitor$Guard.next:Lcom/google/common/util/concurrent/Monitor$Guard;
9: StackMap locals:
StackMap stack:
aload 3
aconst_null
putfield com.google.common.util.concurrent.Monitor$Guard.next:Lcom/google/common/util/concurrent/Monitor$Guard;
10: goto 12
11: StackMap locals:
StackMap stack:
aload 3
astore 4
aload 3
getfield com.google.common.util.concurrent.Monitor$Guard.next:Lcom/google/common/util/concurrent/Monitor$Guard;
astore 3
goto 4
end local 4 end local 3 12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/common/util/concurrent/Monitor;
0 13 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
1 13 2 waiters I
3 12 3 p Lcom/google/common/util/concurrent/Monitor$Guard;
4 12 4 pred Lcom/google/common/util/concurrent/Monitor$Guard;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "lock")
MethodParameters:
Name Flags
guard
private void await(com.google.common.util.concurrent.Monitor$Guard, boolean);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 2
1: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.signalNextWaiter:()V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.beginWaitingFor:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
3: StackMap locals:
StackMap stack:
aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.condition:Ljava/util/concurrent/locks/Condition;
invokeinterface java.util.concurrent.locks.Condition.await:()V
4: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifeq 3
5: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 3
7: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.endWaitingFor:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
8: aload 3
athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.endWaitingFor:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/util/concurrent/Monitor;
0 11 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
0 11 2 signalBeforeWaiting Z
Exception table:
from to target type
3 6 6 any
Exceptions:
throws java.lang.InterruptedException
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "lock")
MethodParameters:
Name Flags
guard
signalBeforeWaiting
private void awaitUninterruptibly(com.google.common.util.concurrent.Monitor$Guard, boolean);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 2
1: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.signalNextWaiter:()V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.beginWaitingFor:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
3: StackMap locals:
StackMap stack:
aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.condition:Ljava/util/concurrent/locks/Condition;
invokeinterface java.util.concurrent.locks.Condition.awaitUninterruptibly:()V
4: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifeq 3
5: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 3
7: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.endWaitingFor:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
8: aload 3
athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.endWaitingFor:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/util/concurrent/Monitor;
0 11 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
0 11 2 signalBeforeWaiting Z
Exception table:
from to target type
3 6 6 any
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "lock")
MethodParameters:
Name Flags
guard
signalBeforeWaiting
private boolean awaitNanos(com.google.common.util.concurrent.Monitor$Guard, long, boolean);
descriptor: (Lcom/google/common/util/concurrent/Monitor$Guard;JZ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 4 0: iconst_1
istore 5
start local 5 1: StackMap locals: int
StackMap stack:
lload 2
lconst_0
lcmp
ifgt 5
2: iload 5
ifne 4
3: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.endWaitingFor:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iload 5
ifeq 10
6: iload 4
ifeq 8
7: aload 0
invokevirtual com.google.common.util.concurrent.Monitor.signalNextWaiter:()V
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.beginWaitingFor:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
9: iconst_0
istore 5
10: StackMap locals:
StackMap stack:
aload 1
getfield com.google.common.util.concurrent.Monitor$Guard.condition:Ljava/util/concurrent/locks/Condition;
lload 2
invokeinterface java.util.concurrent.locks.Condition.awaitNanos:(J)J
lstore 2
11: aload 1
invokevirtual com.google.common.util.concurrent.Monitor$Guard.isSatisfied:()Z
ifeq 1
12: iload 5
ifne 14
13: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.endWaitingFor:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
14: StackMap locals:
StackMap stack:
iconst_1
ireturn
15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
16: iload 5
ifne 18
17: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.Monitor.endWaitingFor:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
18: StackMap locals: java.lang.Throwable
StackMap stack:
aload 6
athrow
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/google/common/util/concurrent/Monitor;
0 19 1 guard Lcom/google/common/util/concurrent/Monitor$Guard;
0 19 2 nanos J
0 19 4 signalBeforeWaiting Z
1 19 5 firstTime Z
Exception table:
from to target type
1 2 15 any
5 12 15 any
Exceptions:
throws java.lang.InterruptedException
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "lock")
MethodParameters:
Name Flags
guard
nanos
signalBeforeWaiting
}
SourceFile: "Monitor.java"
NestMembers:
com.google.common.util.concurrent.Monitor$1 com.google.common.util.concurrent.Monitor$Guard
InnerClasses:
com.google.common.util.concurrent.Monitor$1
public abstract Guard = com.google.common.util.concurrent.Monitor$Guard of com.google.common.util.concurrent.Monitor
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.common.annotations.GwtIncompatible()