public class org.terracotta.statistics.archive.StatisticSampler<T extends java.io.Serializable>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.terracotta.statistics.archive.StatisticSampler
super_class: java.lang.Object
{
private final boolean exclusiveExecutor;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ScheduledExecutorService executor;
descriptor: Ljava/util/concurrent/ScheduledExecutorService;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.terracotta.statistics.archive.StatisticSampler$SamplingTask<T> task;
descriptor: Lorg/terracotta/statistics/archive/StatisticSampler$SamplingTask;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/terracotta/statistics/archive/StatisticSampler$SamplingTask<TT;>;
private java.util.concurrent.ScheduledFuture<?> currentExecution;
descriptor: Ljava/util/concurrent/ScheduledFuture;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/ScheduledFuture<*>;
private long period;
descriptor: J
flags: (0x0002) ACC_PRIVATE
public void <init>(long, java.util.concurrent.TimeUnit, org.terracotta.statistics.ValueStatistic<T>, java.util.function.Consumer<org.terracotta.statistics.Sample<T>>, java.util.function.LongSupplier);
descriptor: (JLjava/util/concurrent/TimeUnit;Lorg/terracotta/statistics/ValueStatistic;Ljava/util/function/Consumer;Ljava/util/function/LongSupplier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=7, args_size=6
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 0: aload 0
aconst_null
lload 1
aload 3
aload 4
aload 5
aload 6
invokespecial org.terracotta.statistics.archive.StatisticSampler.<init>:(Ljava/util/concurrent/ScheduledExecutorService;JLjava/util/concurrent/TimeUnit;Lorg/terracotta/statistics/ValueStatistic;Ljava/util/function/Consumer;Ljava/util/function/LongSupplier;)V
1: return
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/terracotta/statistics/archive/StatisticSampler<TT;>;
0 2 1 time J
0 2 3 unit Ljava/util/concurrent/TimeUnit;
0 2 4 statistic Lorg/terracotta/statistics/ValueStatistic<TT;>;
0 2 5 sink Ljava/util/function/Consumer<Lorg/terracotta/statistics/Sample<TT;>;>;
0 2 6 timeSupplier Ljava/util/function/LongSupplier;
Signature: (JLjava/util/concurrent/TimeUnit;Lorg/terracotta/statistics/ValueStatistic<TT;>;Ljava/util/function/Consumer<Lorg/terracotta/statistics/Sample<TT;>;>;Ljava/util/function/LongSupplier;)V
MethodParameters:
Name Flags
time
unit
statistic
sink
timeSupplier
public void <init>(java.util.concurrent.ScheduledExecutorService, long, java.util.concurrent.TimeUnit, org.terracotta.statistics.ValueStatistic<T>, java.util.function.Consumer<org.terracotta.statistics.Sample<T>>, java.util.function.LongSupplier);
descriptor: (Ljava/util/concurrent/ScheduledExecutorService;JLjava/util/concurrent/TimeUnit;Lorg/terracotta/statistics/ValueStatistic;Ljava/util/function/Consumer;Ljava/util/function/LongSupplier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ifnonnull 5
2: aload 0
iconst_1
putfield org.terracotta.statistics.archive.StatisticSampler.exclusiveExecutor:Z
3: aload 0
new org.terracotta.statistics.archive.StatisticSampler$SamplerThreadFactory
dup
invokespecial org.terracotta.statistics.archive.StatisticSampler$SamplerThreadFactory.<init>:()V
invokestatic java.util.concurrent.Executors.newSingleThreadScheduledExecutor:(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
putfield org.terracotta.statistics.archive.StatisticSampler.executor:Ljava/util/concurrent/ScheduledExecutorService;
4: goto 7
5: StackMap locals: org.terracotta.statistics.archive.StatisticSampler java.util.concurrent.ScheduledExecutorService long java.util.concurrent.TimeUnit org.terracotta.statistics.ValueStatistic java.util.function.Consumer java.util.function.LongSupplier
StackMap stack:
aload 0
iconst_0
putfield org.terracotta.statistics.archive.StatisticSampler.exclusiveExecutor:Z
6: aload 0
aload 1
putfield org.terracotta.statistics.archive.StatisticSampler.executor:Ljava/util/concurrent/ScheduledExecutorService;
7: StackMap locals:
StackMap stack:
aload 0
aload 4
lload 2
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
putfield org.terracotta.statistics.archive.StatisticSampler.period:J
8: aload 0
new org.terracotta.statistics.archive.StatisticSampler$SamplingTask
dup
aload 5
aload 6
aload 7
invokespecial org.terracotta.statistics.archive.StatisticSampler$SamplingTask.<init>:(Lorg/terracotta/statistics/ValueStatistic;Ljava/util/function/Consumer;Ljava/util/function/LongSupplier;)V
putfield org.terracotta.statistics.archive.StatisticSampler.task:Lorg/terracotta/statistics/archive/StatisticSampler$SamplingTask;
9: return
end local 7 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 10 0 this Lorg/terracotta/statistics/archive/StatisticSampler<TT;>;
0 10 1 executor Ljava/util/concurrent/ScheduledExecutorService;
0 10 2 time J
0 10 4 unit Ljava/util/concurrent/TimeUnit;
0 10 5 statistic Lorg/terracotta/statistics/ValueStatistic<TT;>;
0 10 6 sink Ljava/util/function/Consumer<Lorg/terracotta/statistics/Sample<TT;>;>;
0 10 7 timeSupplier Ljava/util/function/LongSupplier;
Signature: (Ljava/util/concurrent/ScheduledExecutorService;JLjava/util/concurrent/TimeUnit;Lorg/terracotta/statistics/ValueStatistic<TT;>;Ljava/util/function/Consumer<Lorg/terracotta/statistics/Sample<TT;>;>;Ljava/util/function/LongSupplier;)V
MethodParameters:
Name Flags
executor
time
unit
statistic
sink
timeSupplier
public synchronized void setPeriod(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
putfield org.terracotta.statistics.archive.StatisticSampler.period:J
1: aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.currentExecution:Ljava/util/concurrent/ScheduledFuture;
ifnull 4
aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.currentExecution:Ljava/util/concurrent/ScheduledFuture;
invokeinterface java.util.concurrent.ScheduledFuture.isDone:()Z
ifne 4
2: aload 0
invokevirtual org.terracotta.statistics.archive.StatisticSampler.stop:()V
3: aload 0
invokevirtual org.terracotta.statistics.archive.StatisticSampler.start:()V
4: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/terracotta/statistics/archive/StatisticSampler<TT;>;
0 5 1 time J
0 5 3 unit Ljava/util/concurrent/TimeUnit;
MethodParameters:
Name Flags
time
unit
public synchronized void start();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=8, locals=1, args_size=1
start local 0 0: aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.currentExecution:Ljava/util/concurrent/ScheduledFuture;
ifnull 1
aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.currentExecution:Ljava/util/concurrent/ScheduledFuture;
invokeinterface java.util.concurrent.ScheduledFuture.isDone:()Z
ifeq 3
1: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.executor:Ljava/util/concurrent/ScheduledExecutorService;
aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.task:Lorg/terracotta/statistics/archive/StatisticSampler$SamplingTask;
aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.period:J
aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.period:J
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface java.util.concurrent.ScheduledExecutorService.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
putfield org.terracotta.statistics.archive.StatisticSampler.currentExecution:Ljava/util/concurrent/ScheduledFuture;
2: goto 4
3: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Sampler is already running"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/terracotta/statistics/archive/StatisticSampler<TT;>;
public synchronized void stop();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.currentExecution:Ljava/util/concurrent/ScheduledFuture;
ifnull 1
aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.currentExecution:Ljava/util/concurrent/ScheduledFuture;
invokeinterface java.util.concurrent.ScheduledFuture.isDone:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Sampler is not running"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.currentExecution:Ljava/util/concurrent/ScheduledFuture;
iconst_0
invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
pop
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/terracotta/statistics/archive/StatisticSampler<TT;>;
public synchronized void shutdown();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.exclusiveExecutor:Z
ifeq 4
1: aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.executor:Ljava/util/concurrent/ScheduledExecutorService;
invokeinterface java.util.concurrent.ScheduledExecutorService.shutdown:()V
2: aload 0
getfield org.terracotta.statistics.archive.StatisticSampler.executor:Ljava/util/concurrent/ScheduledExecutorService;
ldc 10
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface java.util.concurrent.ScheduledExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
ifne 5
3: new java.lang.IllegalStateException
dup
ldc "Exclusive ScheduledExecutorService failed to terminate promptly"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "ScheduledExecutorService was supplied externally - it must be shutdown directly"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/terracotta/statistics/archive/StatisticSampler<TT;>;
Exceptions:
throws java.lang.InterruptedException
}
Signature: <T::Ljava/io/Serializable;>Ljava/lang/Object;
SourceFile: "StatisticSampler.java"
NestMembers:
org.terracotta.statistics.archive.StatisticSampler$SamplerThreadFactory org.terracotta.statistics.archive.StatisticSampler$SamplingTask
InnerClasses:
SamplerThreadFactory = org.terracotta.statistics.archive.StatisticSampler$SamplerThreadFactory of org.terracotta.statistics.archive.StatisticSampler
SamplingTask = org.terracotta.statistics.archive.StatisticSampler$SamplingTask of org.terracotta.statistics.archive.StatisticSampler