public class java.util.concurrent.ConcurrentLinkedQueue<E> extends java.util.AbstractQueue<E> implements java.util.Queue<E>, java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.util.concurrent.ConcurrentLinkedQueue
super_class: java.util.AbstractQueue
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 196745693267521676
private volatile transient java.util.concurrent.ConcurrentLinkedQueue$Node<E> head;
descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
Signature: Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
private volatile transient java.util.concurrent.ConcurrentLinkedQueue$Node<E> tail;
descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
Signature: Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
private static final sun.misc.Unsafe UNSAFE;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long headOffset;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long tailOffset;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
putstatic java.util.concurrent.ConcurrentLinkedQueue.UNSAFE:Lsun/misc/Unsafe;
1: ldc Ljava/util/concurrent/ConcurrentLinkedQueue;
astore 0
start local 0 2: getstatic java.util.concurrent.ConcurrentLinkedQueue.UNSAFE:Lsun/misc/Unsafe;
3: aload 0
ldc "head"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
4: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ConcurrentLinkedQueue.headOffset:J
5: getstatic java.util.concurrent.ConcurrentLinkedQueue.UNSAFE:Lsun/misc/Unsafe;
6: aload 0
ldc "tail"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
7: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ConcurrentLinkedQueue.tailOffset:J
end local 0 8: goto 11
StackMap locals:
StackMap stack: java.lang.Exception
9: astore 0
start local 0 10: new java.lang.Error
dup
aload 0
invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 11: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
2 8 0 k Ljava/lang/Class;
10 11 0 e Ljava/lang/Exception;
Exception table:
from to target type
0 8 9 Class java.lang.Exception
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.util.AbstractQueue.<init>:()V
1: aload 0
aload 0
new java.util.concurrent.ConcurrentLinkedQueue$Node
dup
aconst_null
invokespecial java.util.concurrent.ConcurrentLinkedQueue$Node.<init>:(Ljava/lang/Object;)V
dup_x1
putfield java.util.concurrent.ConcurrentLinkedQueue.tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
putfield java.util.concurrent.ConcurrentLinkedQueue.head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
public void <init>(java.util.Collection<? extends E>);
descriptor: (Ljava/util/Collection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.util.AbstractQueue.<init>:()V
1: aconst_null
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 11
StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.Collection java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 4
start local 4 5: aload 4
invokestatic java.util.concurrent.ConcurrentLinkedQueue.checkNotNull:(Ljava/lang/Object;)V
6: new java.util.concurrent.ConcurrentLinkedQueue$Node
dup
aload 4
invokespecial java.util.concurrent.ConcurrentLinkedQueue$Node.<init>:(Ljava/lang/Object;)V
astore 6
start local 6 7: aload 2
ifnonnull 9
8: aload 6
dup
astore 3
astore 2
goto 11
9: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.Collection java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.lang.Object java.util.Iterator java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 3
aload 6
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Node.lazySetNext:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
10: aload 6
astore 3
end local 6 end local 4 11: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.Collection java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
12: aload 2
ifnonnull 14
13: new java.util.concurrent.ConcurrentLinkedQueue$Node
dup
aconst_null
invokespecial java.util.concurrent.ConcurrentLinkedQueue$Node.<init>:(Ljava/lang/Object;)V
dup
astore 3
astore 2
14: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.Collection java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 0
aload 2
putfield java.util.concurrent.ConcurrentLinkedQueue.head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
15: aload 0
aload 3
putfield java.util.concurrent.ConcurrentLinkedQueue.tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 17 1 c Ljava/util/Collection<+TE;>;
2 17 2 h Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
3 17 3 t Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
5 11 4 e TE;
7 11 6 newNode Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
Signature: (Ljava/util/Collection<+TE;>;)V
MethodParameters:
Name Flags
c
public boolean add();
descriptor: (Ljava/lang/Object;)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 java.util.concurrent.ConcurrentLinkedQueue.offer:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 1 1 e TE;
Signature: (TE;)Z
MethodParameters:
Name Flags
e
final void updateHead(java.util.concurrent.ConcurrentLinkedQueue$Node<E>, java.util.concurrent.ConcurrentLinkedQueue$Node<E>);
descriptor: (Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
if_acmpeq 2
aload 0
aload 1
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.casHead:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
ifeq 2
1: aload 1
aload 1
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Node.lazySetNext:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 3 1 h Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
0 3 2 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
Signature: (Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;)V
MethodParameters:
Name Flags
h
p
final java.util.concurrent.ConcurrentLinkedQueue$Node<E> succ(java.util.concurrent.ConcurrentLinkedQueue$Node<E>);
descriptor: (Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.next:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
start local 2 1: aload 1
aload 2
if_acmpne 2
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
goto 3
StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
2: aload 2
StackMap locals:
StackMap stack: java.util.concurrent.ConcurrentLinkedQueue$Node
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 4 1 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
1 4 2 next Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
Signature: (Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
MethodParameters:
Name Flags
p
public boolean offer();
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.concurrent.ConcurrentLinkedQueue.checkNotNull:(Ljava/lang/Object;)V
1: new java.util.concurrent.ConcurrentLinkedQueue$Node
dup
aload 1
invokespecial java.util.concurrent.ConcurrentLinkedQueue$Node.<init>:(Ljava/lang/Object;)V
astore 2
start local 2 2: aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 3
start local 3 3: aload 3
astore 4
start local 4 4: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 4
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.next:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 5
start local 5 5: aload 5
ifnonnull 10
6: aload 4
aconst_null
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Node.casNext:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
ifeq 4
7: aload 4
aload 3
if_acmpeq 9
8: aload 0
aload 3
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.casTail:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
pop
9: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 4
aload 5
if_acmpne 14
11: aload 3
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
dup
astore 3
if_acmpeq 12
aload 3
goto 13
StackMap locals:
StackMap stack:
12: aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
StackMap locals:
StackMap stack: java.util.concurrent.ConcurrentLinkedQueue$Node
13: astore 4
goto 4
14: StackMap locals:
StackMap stack:
aload 4
aload 3
if_acmpeq 15
aload 3
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
dup
astore 3
if_acmpeq 15
aload 3
goto 16
StackMap locals:
StackMap stack:
15: aload 5
StackMap locals:
StackMap stack: java.util.concurrent.ConcurrentLinkedQueue$Node
16: astore 4
end local 5 17: goto 4
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 18 1 e TE;
2 18 2 newNode Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
3 18 3 t Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
4 18 4 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
5 17 5 q Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
Signature: (TE;)Z
MethodParameters:
Name Flags
e
public E poll();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 1
start local 1 1: aload 1
astore 2
start local 2 2: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
astore 4
start local 4 3: aload 4
ifnull 10
aload 2
aload 4
aconst_null
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Node.casItem:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 10
4: aload 2
aload 1
if_acmpeq 9
5: aload 0
aload 1
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.next:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
dup
astore 3
start local 3 6: ifnull 7
aload 3
goto 8
StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.lang.Object
StackMap stack: java.util.concurrent.ConcurrentLinkedQueue java.util.concurrent.ConcurrentLinkedQueue$Node
7: aload 2
StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.lang.Object
StackMap stack: java.util.concurrent.ConcurrentLinkedQueue java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
8: invokevirtual java.util.concurrent.ConcurrentLinkedQueue.updateHead:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
end local 3 9: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node top java.lang.Object
StackMap stack:
aload 4
areturn
10: StackMap locals:
StackMap stack:
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.next:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
dup
astore 3
start local 3 11: ifnonnull 14
12: aload 0
aload 1
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.updateHead:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
13: aconst_null
areturn
14: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.lang.Object
StackMap stack:
aload 2
aload 3
if_acmpne 16
15: goto 0
16: StackMap locals:
StackMap stack:
aload 3
astore 2
end local 4 end local 3 17: goto 2
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
1 18 1 h Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
2 18 2 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
6 9 3 q Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
11 17 3 q Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
3 17 4 item TE;
Signature: ()TE;
public E peek();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 1
start local 1 1: aload 1
astore 2
start local 2 2: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
astore 4
start local 4 3: aload 4
ifnonnull 5
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.next:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
dup
astore 3
start local 3 4: ifnonnull 7
end local 3 5: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node top java.lang.Object
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.updateHead:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
6: aload 4
areturn
start local 3 7: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.lang.Object
StackMap stack:
aload 2
aload 3
if_acmpne 9
8: goto 0
9: StackMap locals:
StackMap stack:
aload 3
astore 2
end local 4 end local 3 10: goto 2
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
1 11 1 h Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
2 11 2 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
4 5 3 q Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
7 10 3 q Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
3 10 4 item TE;
Signature: ()TE;
java.util.concurrent.ConcurrentLinkedQueue$Node<E> first();
descriptor: ()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 1
start local 1 1: aload 1
astore 2
start local 2 2: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
ifnull 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 4
start local 4 5: iload 4
ifne 7
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.next:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
dup
astore 3
start local 3 6: ifnonnull 11
end local 3 7: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node top int
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.updateHead:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
8: iload 4
ifeq 9
aload 2
goto 10
StackMap locals:
StackMap stack:
9: aconst_null
StackMap locals:
StackMap stack: java.util.concurrent.ConcurrentLinkedQueue$Node
10: areturn
start local 3 11: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node int
StackMap stack:
aload 2
aload 3
if_acmpne 13
12: goto 0
13: StackMap locals:
StackMap stack:
aload 3
astore 2
end local 4 end local 3 14: goto 2
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
1 15 1 h Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
2 15 2 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
6 7 3 q Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
11 14 3 q Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
5 14 4 hasItem Z
Signature: ()Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
public boolean isEmpty();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.first:()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
ifnonnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.first:()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
start local 2 2: goto 7
3: StackMap locals: int java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
ifnull 6
4: iinc 1 1
iload 1
ldc 2147483647
if_icmpne 6
5: goto 8
6: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.succ:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
StackMap locals:
StackMap stack:
7: aload 2
ifnonnull 3
end local 2 8: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
1 9 1 count I
2 8 2 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
public boolean contains(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.first:()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
start local 2 2: goto 7
3: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
astore 3
start local 3 4: aload 3
ifnull 6
aload 1
aload 3
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 6
5: iconst_1
ireturn
end local 3 6: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.succ:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
StackMap locals:
StackMap stack:
7: aload 2
ifnonnull 3
end local 2 8: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 9 1 o Ljava/lang/Object;
2 8 2 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
4 6 3 item TE;
MethodParameters:
Name Flags
o
public boolean remove(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
ifnull 18
1: aconst_null
astore 3
start local 3 2: aload 0
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.first:()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 4
start local 4 3: goto 17
4: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.lang.Object top java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
iconst_0
istore 5
start local 5 5: aload 4
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
astore 6
start local 6 6: aload 6
ifnull 11
7: aload 1
aload 6
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 10
8: aload 0
aload 4
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.succ:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
start local 2 9: goto 16
end local 2 10: StackMap locals: int java.lang.Object
StackMap stack:
aload 4
aload 6
aconst_null
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Node.casItem:(Ljava/lang/Object;Ljava/lang/Object;)Z
istore 5
11: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.succ:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
start local 2 12: aload 3
ifnull 14
aload 2
ifnull 14
13: aload 3
aload 4
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Node.casNext:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
pop
14: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.lang.Object java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node int java.lang.Object
StackMap stack:
iload 5
ifeq 16
15: iconst_1
ireturn
end local 6 end local 5 16: StackMap locals:
StackMap stack:
aload 4
astore 3
aload 2
astore 4
end local 2 StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.lang.Object top java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
17: aload 4
ifnonnull 4
end local 4 end local 3 18: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.lang.Object
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 19 1 o Ljava/lang/Object;
9 10 2 next Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
12 17 2 next Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
2 18 3 pred Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
3 18 4 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
5 16 5 removed Z
6 16 6 item TE;
MethodParameters:
Name Flags
o
public boolean addAll(java.util.Collection<? extends E>);
descriptor: (Ljava/util/Collection;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
aload 0
if_acmpne 2
1: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 3: aconst_null
astore 3
start local 3 4: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 12
StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.Collection java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 4
start local 4 6: aload 4
invokestatic java.util.concurrent.ConcurrentLinkedQueue.checkNotNull:(Ljava/lang/Object;)V
7: new java.util.concurrent.ConcurrentLinkedQueue$Node
dup
aload 4
invokespecial java.util.concurrent.ConcurrentLinkedQueue$Node.<init>:(Ljava/lang/Object;)V
astore 6
start local 6 8: aload 2
ifnonnull 10
9: aload 6
dup
astore 3
astore 2
goto 12
10: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.Collection java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.lang.Object java.util.Iterator java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 3
aload 6
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Node.lazySetNext:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
11: aload 6
astore 3
end local 6 end local 4 12: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.Collection java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
13: aload 2
ifnonnull 15
14: iconst_0
ireturn
15: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue java.util.Collection java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 4
start local 4 16: aload 4
astore 5
start local 5 17: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 5
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.next:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 6
start local 6 18: aload 6
ifnonnull 25
19: aload 5
aconst_null
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Node.casNext:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
ifeq 17
20: aload 0
aload 4
aload 3
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.casTail:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
ifne 24
21: aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 4
22: aload 3
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.next:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
ifnonnull 24
23: aload 0
aload 4
aload 3
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.casTail:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
pop
24: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
iconst_1
ireturn
25: StackMap locals:
StackMap stack:
aload 5
aload 6
if_acmpne 29
26: aload 4
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
dup
astore 4
if_acmpeq 27
aload 4
goto 28
StackMap locals:
StackMap stack:
27: aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
StackMap locals:
StackMap stack: java.util.concurrent.ConcurrentLinkedQueue$Node
28: astore 5
goto 17
29: StackMap locals:
StackMap stack:
aload 5
aload 4
if_acmpeq 30
aload 4
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue.tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
dup
astore 4
if_acmpeq 30
aload 4
goto 31
StackMap locals:
StackMap stack:
30: aload 6
StackMap locals:
StackMap stack: java.util.concurrent.ConcurrentLinkedQueue$Node
31: astore 5
end local 6 32: goto 17
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 33 1 c Ljava/util/Collection<+TE;>;
3 33 2 beginningOfTheEnd Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
4 33 3 last Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
6 12 4 e TE;
8 12 6 newNode Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
16 33 4 t Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
17 33 5 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
18 32 6 q Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
Signature: (Ljava/util/Collection<+TE;>;)Z
MethodParameters:
Name Flags
c
public java.lang.Object[] toArray();
descriptor: ()[Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.first:()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
start local 2 2: goto 7
3: StackMap locals: java.util.ArrayList java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
astore 3
start local 3 4: aload 3
ifnull 6
5: aload 1
aload 3
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 3 6: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.succ:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
StackMap locals:
StackMap stack:
7: aload 2
ifnonnull 3
end local 2 8: aload 1
invokevirtual java.util.ArrayList.toArray:()[Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
1 9 1 al Ljava/util/ArrayList<TE;>;
2 8 2 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
4 6 3 item TE;
public <T> T[] toArray();
descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.first:()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 3
start local 3 2: goto 7
3: StackMap locals: int java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 3
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
astore 4
start local 4 4: aload 4
ifnull 6
5: aload 1
iload 2
iinc 2 1
aload 4
aastore
end local 4 6: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.succ:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 3
StackMap locals:
StackMap stack:
7: aload 3
ifnull 8
iload 2
aload 1
arraylength
if_icmplt 3
8: StackMap locals:
StackMap stack:
aload 3
ifnonnull 12
9: iload 2
aload 1
arraylength
if_icmpge 11
10: aload 1
iload 2
aconst_null
aastore
11: StackMap locals:
StackMap stack:
aload 1
areturn
12: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 13: aload 0
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.first:()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 5
start local 5 14: goto 19
15: StackMap locals: java.util.ArrayList java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 5
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
astore 6
start local 6 16: aload 6
ifnull 18
17: aload 4
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 18: StackMap locals:
StackMap stack:
aload 0
aload 5
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.succ:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 5
StackMap locals:
StackMap stack:
19: aload 5
ifnonnull 15
end local 5 20: aload 4
aload 1
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 21 1 a [Ljava/lang/Object;
1 21 2 k I
2 21 3 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
4 6 4 item TE;
13 21 4 al Ljava/util/ArrayList<TE;>;
14 20 5 q Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
16 18 6 item TE;
Signature: <T:Ljava/lang/Object;>([TT;)[TT;
MethodParameters:
Name Flags
a
public java.util.Iterator<E> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.util.concurrent.ConcurrentLinkedQueue$Itr
dup
aload 0
invokespecial java.util.concurrent.ConcurrentLinkedQueue$Itr.<init>:(Ljava/util/concurrent/ConcurrentLinkedQueue;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
Signature: ()Ljava/util/Iterator<TE;>;
private void writeObject(java.io.ObjectOutputStream);
descriptor: (Ljava/io/ObjectOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
1: aload 0
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.first:()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
start local 2 2: goto 7
3: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 2
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
astore 3
start local 3 4: aload 3
ifnull 6
5: aload 1
aload 3
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
end local 3 6: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.succ:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
StackMap locals:
StackMap stack:
7: aload 2
ifnonnull 3
end local 2 8: aload 1
aconst_null
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 10 1 s Ljava/io/ObjectOutputStream;
2 8 2 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
4 6 3 item Ljava/lang/Object;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
private void readObject(java.io.ObjectInputStream);
descriptor: (Ljava/io/ObjectInputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
1: aconst_null
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: goto 9
start local 4 4: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node java.lang.Object
StackMap stack:
new java.util.concurrent.ConcurrentLinkedQueue$Node
dup
aload 4
invokespecial java.util.concurrent.ConcurrentLinkedQueue$Node.<init>:(Ljava/lang/Object;)V
astore 5
start local 5 5: aload 2
ifnonnull 7
6: aload 5
dup
astore 3
astore 2
goto 9
7: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 3
aload 5
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Node.lazySetNext:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
8: aload 5
astore 3
end local 5 end local 4 9: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
dup
astore 4
start local 4 10: ifnonnull 4
11: aload 2
ifnonnull 13
12: new java.util.concurrent.ConcurrentLinkedQueue$Node
dup
aconst_null
invokespecial java.util.concurrent.ConcurrentLinkedQueue$Node.<init>:(Ljava/lang/Object;)V
dup
astore 3
astore 2
13: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 2
putfield java.util.concurrent.ConcurrentLinkedQueue.head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
14: aload 0
aload 3
putfield java.util.concurrent.ConcurrentLinkedQueue.tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
15: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 16 1 s Ljava/io/ObjectInputStream;
2 16 2 h Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
3 16 3 t Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
4 9 4 item Ljava/lang/Object;
10 16 4 item Ljava/lang/Object;
5 9 5 newNode Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
MethodParameters:
Name Flags
s
private static void checkNotNull(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 v Ljava/lang/Object;
MethodParameters:
Name Flags
v
private boolean casTail(java.util.concurrent.ConcurrentLinkedQueue$Node<E>, java.util.concurrent.ConcurrentLinkedQueue$Node<E>);
descriptor: (Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.util.concurrent.ConcurrentLinkedQueue.UNSAFE:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ConcurrentLinkedQueue.tailOffset:J
aload 1
aload 2
invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 1 1 cmp Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
0 1 2 val Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
Signature: (Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;)Z
MethodParameters:
Name Flags
cmp
val
private boolean casHead(java.util.concurrent.ConcurrentLinkedQueue$Node<E>, java.util.concurrent.ConcurrentLinkedQueue$Node<E>);
descriptor: (Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.util.concurrent.ConcurrentLinkedQueue.UNSAFE:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ConcurrentLinkedQueue.headOffset:J
aload 1
aload 2
invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ConcurrentLinkedQueue<TE;>;
0 1 1 cmp Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
0 1 2 val Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
Signature: (Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;)Z
MethodParameters:
Name Flags
cmp
val
}
Signature: <E:Ljava/lang/Object;>Ljava/util/AbstractQueue<TE;>;Ljava/util/Queue<TE;>;Ljava/io/Serializable;
SourceFile: "ConcurrentLinkedQueue.java"
NestMembers:
java.util.concurrent.ConcurrentLinkedQueue$Itr java.util.concurrent.ConcurrentLinkedQueue$Node
InnerClasses:
private Itr = java.util.concurrent.ConcurrentLinkedQueue$Itr of java.util.concurrent.ConcurrentLinkedQueue
private Node = java.util.concurrent.ConcurrentLinkedQueue$Node of java.util.concurrent.ConcurrentLinkedQueue