public abstract class com.google.common.util.concurrent.Striped<L>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.google.common.util.concurrent.Striped
super_class: java.lang.Object
{
private static final int LARGE_LAZY_CUTOFF;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1024
private static final com.google.common.base.Supplier<java.util.concurrent.locks.ReadWriteLock> READ_WRITE_LOCK_SUPPLIER;
descriptor: Lcom/google/common/base/Supplier;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/base/Supplier<Ljava/util/concurrent/locks/ReadWriteLock;>;
private static final com.google.common.base.Supplier<java.util.concurrent.locks.ReadWriteLock> WEAK_SAFE_READ_WRITE_LOCK_SUPPLIER;
descriptor: Lcom/google/common/base/Supplier;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/base/Supplier<Ljava/util/concurrent/locks/ReadWriteLock;>;
private static final int ALL_SET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new com.google.common.util.concurrent.Striped$1
dup
invokespecial com.google.common.util.concurrent.Striped$1.<init>:()V
1: putstatic com.google.common.util.concurrent.Striped.READ_WRITE_LOCK_SUPPLIER:Lcom/google/common/base/Supplier;
2: new com.google.common.util.concurrent.Striped$2
dup
invokespecial com.google.common.util.concurrent.Striped$2.<init>:()V
3: putstatic com.google.common.util.concurrent.Striped.WEAK_SAFE_READ_WRITE_LOCK_SUPPLIER:Lcom/google/common/base/Supplier;
4: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/Striped<TL;>;
public abstract L get();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: (Ljava/lang/Object;)TL;
MethodParameters:
Name Flags
key
public abstract L getAt();
descriptor: (I)Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: (I)TL;
MethodParameters:
Name Flags
index
abstract int indexFor(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
key
public abstract int size();
descriptor: ()I
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public java.lang.Iterable<L> bulkGet(java.lang.Iterable<?>);
descriptor: (Ljava/lang/Iterable;)Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
ldc Ljava/lang/Object;
invokestatic com.google.common.collect.Iterables.toArray:(Ljava/lang/Iterable;Ljava/lang/Class;)[Ljava/lang/Object;
astore 2
start local 2 1: aload 2
arraylength
ifne 3
2: invokestatic com.google.common.collect.ImmutableList.of:()Lcom/google/common/collect/ImmutableList;
areturn
3: StackMap locals: java.lang.Object[]
StackMap stack:
aload 2
arraylength
newarray 10
astore 3
start local 3 4: iconst_0
istore 4
start local 4 5: goto 8
6: StackMap locals: int[] int
StackMap stack:
aload 3
iload 4
aload 0
aload 2
iload 4
aaload
invokevirtual com.google.common.util.concurrent.Striped.indexFor:(Ljava/lang/Object;)I
iastore
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
aload 2
arraylength
if_icmplt 6
end local 4 9: aload 3
invokestatic java.util.Arrays.sort:([I)V
10: aload 3
iconst_0
iaload
istore 4
start local 4 11: aload 2
iconst_0
aload 0
iload 4
invokevirtual com.google.common.util.concurrent.Striped.getAt:(I)Ljava/lang/Object;
aastore
12: iconst_1
istore 5
start local 5 13: goto 21
14: StackMap locals: int
StackMap stack:
aload 3
iload 5
iaload
istore 6
start local 6 15: iload 6
iload 4
if_icmpne 18
16: aload 2
iload 5
aload 2
iload 5
iconst_1
isub
aaload
aastore
17: goto 20
18: StackMap locals: int
StackMap stack:
aload 2
iload 5
aload 0
iload 6
invokevirtual com.google.common.util.concurrent.Striped.getAt:(I)Ljava/lang/Object;
aastore
19: iload 6
istore 4
end local 6 20: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
21: iload 5
aload 2
arraylength
if_icmplt 14
end local 5 22: aload 2
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
astore 5
start local 5 23: aload 5
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
areturn
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 24 0 this Lcom/google/common/util/concurrent/Striped<TL;>;
0 24 1 keys Ljava/lang/Iterable<*>;
1 24 2 array [Ljava/lang/Object;
4 24 3 stripes [I
5 9 4 i I
11 24 4 previousStripe I
13 22 5 i I
15 20 6 currentStripe I
23 24 5 asList Ljava/util/List<TL;>;
Signature: (Ljava/lang/Iterable<*>;)Ljava/lang/Iterable<TL;>;
MethodParameters:
Name Flags
keys
static <L> com.google.common.util.concurrent.Striped<L> custom(int, com.google.common.base.Supplier<L>);
descriptor: (ILcom/google/common/base/Supplier;)Lcom/google/common/util/concurrent/Striped;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.google.common.util.concurrent.Striped$CompactStriped
dup
iload 0
aload 1
invokespecial com.google.common.util.concurrent.Striped$CompactStriped.<init>:(ILcom/google/common/base/Supplier;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 stripes I
0 1 1 supplier Lcom/google/common/base/Supplier<TL;>;
Signature: <L:Ljava/lang/Object;>(ILcom/google/common/base/Supplier<TL;>;)Lcom/google/common/util/concurrent/Striped<TL;>;
MethodParameters:
Name Flags
stripes
supplier
public static com.google.common.util.concurrent.Striped<java.util.concurrent.locks.Lock> lock(int);
descriptor: (I)Lcom/google/common/util/concurrent/Striped;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iload 0
new com.google.common.util.concurrent.Striped$3
dup
invokespecial com.google.common.util.concurrent.Striped$3.<init>:()V
invokestatic com.google.common.util.concurrent.Striped.custom:(ILcom/google/common/base/Supplier;)Lcom/google/common/util/concurrent/Striped;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 stripes I
Signature: (I)Lcom/google/common/util/concurrent/Striped<Ljava/util/concurrent/locks/Lock;>;
MethodParameters:
Name Flags
stripes
public static com.google.common.util.concurrent.Striped<java.util.concurrent.locks.Lock> lazyWeakLock(int);
descriptor: (I)Lcom/google/common/util/concurrent/Striped;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iload 0
1: new com.google.common.util.concurrent.Striped$4
dup
invokespecial com.google.common.util.concurrent.Striped$4.<init>:()V
2: invokestatic com.google.common.util.concurrent.Striped.lazy:(ILcom/google/common/base/Supplier;)Lcom/google/common/util/concurrent/Striped;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 stripes I
Signature: (I)Lcom/google/common/util/concurrent/Striped<Ljava/util/concurrent/locks/Lock;>;
MethodParameters:
Name Flags
stripes
private static <L> com.google.common.util.concurrent.Striped<L> lazy(int, com.google.common.base.Supplier<L>);
descriptor: (ILcom/google/common/base/Supplier;)Lcom/google/common/util/concurrent/Striped;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 0
sipush 1024
if_icmpge 2
1: new com.google.common.util.concurrent.Striped$SmallLazyStriped
dup
iload 0
aload 1
invokespecial com.google.common.util.concurrent.Striped$SmallLazyStriped.<init>:(ILcom/google/common/base/Supplier;)V
goto 3
2: StackMap locals:
StackMap stack:
new com.google.common.util.concurrent.Striped$LargeLazyStriped
dup
iload 0
aload 1
invokespecial com.google.common.util.concurrent.Striped$LargeLazyStriped.<init>:(ILcom/google/common/base/Supplier;)V
3: StackMap locals:
StackMap stack: com.google.common.util.concurrent.Striped$PowerOfTwoStriped
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 stripes I
0 4 1 supplier Lcom/google/common/base/Supplier<TL;>;
Signature: <L:Ljava/lang/Object;>(ILcom/google/common/base/Supplier<TL;>;)Lcom/google/common/util/concurrent/Striped<TL;>;
MethodParameters:
Name Flags
stripes
supplier
public static com.google.common.util.concurrent.Striped<java.util.concurrent.Semaphore> semaphore(int, int);
descriptor: (II)Lcom/google/common/util/concurrent/Striped;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 0
1: new com.google.common.util.concurrent.Striped$5
dup
iload 1
invokespecial com.google.common.util.concurrent.Striped$5.<init>:(I)V
2: invokestatic com.google.common.util.concurrent.Striped.custom:(ILcom/google/common/base/Supplier;)Lcom/google/common/util/concurrent/Striped;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 stripes I
0 3 1 permits I
Signature: (II)Lcom/google/common/util/concurrent/Striped<Ljava/util/concurrent/Semaphore;>;
MethodParameters:
Name Flags
stripes
permits final
public static com.google.common.util.concurrent.Striped<java.util.concurrent.Semaphore> lazyWeakSemaphore(int, int);
descriptor: (II)Lcom/google/common/util/concurrent/Striped;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 0
1: new com.google.common.util.concurrent.Striped$6
dup
iload 1
invokespecial com.google.common.util.concurrent.Striped$6.<init>:(I)V
2: invokestatic com.google.common.util.concurrent.Striped.lazy:(ILcom/google/common/base/Supplier;)Lcom/google/common/util/concurrent/Striped;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 stripes I
0 3 1 permits I
Signature: (II)Lcom/google/common/util/concurrent/Striped<Ljava/util/concurrent/Semaphore;>;
MethodParameters:
Name Flags
stripes
permits final
public static com.google.common.util.concurrent.Striped<java.util.concurrent.locks.ReadWriteLock> readWriteLock(int);
descriptor: (I)Lcom/google/common/util/concurrent/Striped;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
getstatic com.google.common.util.concurrent.Striped.READ_WRITE_LOCK_SUPPLIER:Lcom/google/common/base/Supplier;
invokestatic com.google.common.util.concurrent.Striped.custom:(ILcom/google/common/base/Supplier;)Lcom/google/common/util/concurrent/Striped;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 stripes I
Signature: (I)Lcom/google/common/util/concurrent/Striped<Ljava/util/concurrent/locks/ReadWriteLock;>;
MethodParameters:
Name Flags
stripes
public static com.google.common.util.concurrent.Striped<java.util.concurrent.locks.ReadWriteLock> lazyWeakReadWriteLock(int);
descriptor: (I)Lcom/google/common/util/concurrent/Striped;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
getstatic com.google.common.util.concurrent.Striped.WEAK_SAFE_READ_WRITE_LOCK_SUPPLIER:Lcom/google/common/base/Supplier;
invokestatic com.google.common.util.concurrent.Striped.lazy:(ILcom/google/common/base/Supplier;)Lcom/google/common/util/concurrent/Striped;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 stripes I
Signature: (I)Lcom/google/common/util/concurrent/Striped<Ljava/util/concurrent/locks/ReadWriteLock;>;
MethodParameters:
Name Flags
stripes
private static int ceilToPowerOfTwo(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iconst_1
iload 0
getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
invokestatic com.google.common.math.IntMath.log2:(ILjava/math/RoundingMode;)I
ishl
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x I
MethodParameters:
Name Flags
x
private static int smear(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: iload 0
iload 0
bipush 20
iushr
iload 0
bipush 12
iushr
ixor
ixor
istore 0
1: iload 0
iload 0
bipush 7
iushr
ixor
iload 0
iconst_4
iushr
ixor
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 hashCode I
MethodParameters:
Name Flags
hashCode
}
Signature: <L:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "Striped.java"
NestMembers:
com.google.common.util.concurrent.Striped$1 com.google.common.util.concurrent.Striped$2 com.google.common.util.concurrent.Striped$3 com.google.common.util.concurrent.Striped$4 com.google.common.util.concurrent.Striped$5 com.google.common.util.concurrent.Striped$6 com.google.common.util.concurrent.Striped$CompactStriped com.google.common.util.concurrent.Striped$LargeLazyStriped com.google.common.util.concurrent.Striped$PaddedLock com.google.common.util.concurrent.Striped$PaddedSemaphore com.google.common.util.concurrent.Striped$PowerOfTwoStriped com.google.common.util.concurrent.Striped$SmallLazyStriped com.google.common.util.concurrent.Striped$SmallLazyStriped$ArrayReference com.google.common.util.concurrent.Striped$WeakSafeCondition com.google.common.util.concurrent.Striped$WeakSafeLock com.google.common.util.concurrent.Striped$WeakSafeReadWriteLock
InnerClasses:
com.google.common.util.concurrent.Striped$1
com.google.common.util.concurrent.Striped$2
com.google.common.util.concurrent.Striped$3
com.google.common.util.concurrent.Striped$4
com.google.common.util.concurrent.Striped$5
com.google.common.util.concurrent.Striped$6
private CompactStriped = com.google.common.util.concurrent.Striped$CompactStriped of com.google.common.util.concurrent.Striped
LargeLazyStriped = com.google.common.util.concurrent.Striped$LargeLazyStriped of com.google.common.util.concurrent.Striped
private PaddedLock = com.google.common.util.concurrent.Striped$PaddedLock of com.google.common.util.concurrent.Striped
private PaddedSemaphore = com.google.common.util.concurrent.Striped$PaddedSemaphore of com.google.common.util.concurrent.Striped
private abstract PowerOfTwoStriped = com.google.common.util.concurrent.Striped$PowerOfTwoStriped of com.google.common.util.concurrent.Striped
SmallLazyStriped = com.google.common.util.concurrent.Striped$SmallLazyStriped of com.google.common.util.concurrent.Striped
private final WeakSafeCondition = com.google.common.util.concurrent.Striped$WeakSafeCondition of com.google.common.util.concurrent.Striped
private final WeakSafeLock = com.google.common.util.concurrent.Striped$WeakSafeLock of com.google.common.util.concurrent.Striped
private final WeakSafeReadWriteLock = com.google.common.util.concurrent.Striped$WeakSafeReadWriteLock of com.google.common.util.concurrent.Striped
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.common.annotations.GwtIncompatible()