public class com.codahale.metrics.jvm.ThreadStatesGaugeSet implements com.codahale.metrics.MetricSet
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.codahale.metrics.jvm.ThreadStatesGaugeSet
  super_class: java.lang.Object
{
  private static final int STACK_TRACE_DEPTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private final java.lang.management.ThreadMXBean threads;
    descriptor: Ljava/lang/management/ThreadMXBean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.codahale.metrics.jvm.ThreadDeadlockDetector deadlockDetector;
    descriptor: Lcom/codahale/metrics/jvm/ThreadDeadlockDetector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
         0: .line 32
            aload 0 /* this */
            invokestatic java.lang.management.ManagementFactory.getThreadMXBean:()Ljava/lang/management/ThreadMXBean;
            new com.codahale.metrics.jvm.ThreadDeadlockDetector
            dup
            invokespecial com.codahale.metrics.jvm.ThreadDeadlockDetector.<init>:()V
            invokespecial com.codahale.metrics.jvm.ThreadStatesGaugeSet.<init>:(Ljava/lang/management/ThreadMXBean;Lcom/codahale/metrics/jvm/ThreadDeadlockDetector;)V
         1: .line 33
            return
        end local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/codahale/metrics/jvm/ThreadStatesGaugeSet;

  public void <init>(java.lang.management.ThreadMXBean, com.codahale.metrics.jvm.ThreadDeadlockDetector);
    descriptor: (Ljava/lang/management/ThreadMXBean;Lcom/codahale/metrics/jvm/ThreadDeadlockDetector;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
        start local 1 // java.lang.management.ThreadMXBean threads
        start local 2 // com.codahale.metrics.jvm.ThreadDeadlockDetector deadlockDetector
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 43
            aload 0 /* this */
            aload 1 /* threads */
            putfield com.codahale.metrics.jvm.ThreadStatesGaugeSet.threads:Ljava/lang/management/ThreadMXBean;
         2: .line 44
            aload 0 /* this */
            aload 2 /* deadlockDetector */
            putfield com.codahale.metrics.jvm.ThreadStatesGaugeSet.deadlockDetector:Lcom/codahale/metrics/jvm/ThreadDeadlockDetector;
         3: .line 45
            return
        end local 2 // com.codahale.metrics.jvm.ThreadDeadlockDetector deadlockDetector
        end local 1 // java.lang.management.ThreadMXBean threads
        end local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/codahale/metrics/jvm/ThreadStatesGaugeSet;
            0    4     1           threads  Ljava/lang/management/ThreadMXBean;
            0    4     2  deadlockDetector  Lcom/codahale/metrics/jvm/ThreadDeadlockDetector;
    MethodParameters:
                  Name  Flags
      threads           
      deadlockDetector  

  public java.util.Map<java.lang.String, com.codahale.metrics.Metric> getMetrics();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
         0: .line 49
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* gauges */
        start local 1 // java.util.Map gauges
         1: .line 51
            invokestatic java.lang.Thread$State.values:()[Ljava/lang/Thread$State;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 7
      StackMap locals: com.codahale.metrics.jvm.ThreadStatesGaugeSet java.util.Map top int int java.lang.Thread$State[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* state */
        start local 2 // java.lang.Thread$State state
         3: .line 52
            aload 1 /* gauges */
            aload 2 /* state */
            invokevirtual java.lang.Thread$State.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "count"
            aastore
            invokestatic com.codahale.metrics.MetricRegistry.name:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
         4: .line 53
            aload 0 /* this */
            aload 2 /* state */
            invokedynamic getValue(Lcom/codahale/metrics/jvm/ThreadStatesGaugeSet;Ljava/lang/Thread$State;)Lcom/codahale/metrics/Gauge;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/codahale/metrics/jvm/ThreadStatesGaugeSet.lambda$0(Ljava/lang/Thread$State;)Ljava/lang/Object; (7)
                  ()Ljava/lang/Object;
         5: .line 52
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.lang.Thread$State state
         6: .line 51
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 2
         8: .line 56
            aload 1 /* gauges */
            ldc "count"
            aload 0 /* this */
            getfield com.codahale.metrics.jvm.ThreadStatesGaugeSet.threads:Ljava/lang/management/ThreadMXBean;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic getValue(Ljava/lang/management/ThreadMXBean;)Lcom/codahale/metrics/Gauge;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  java/lang/management/ThreadMXBean.getThreadCount()I (9 itf)
                  ()Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 57
            aload 1 /* gauges */
            ldc "daemon.count"
            aload 0 /* this */
            getfield com.codahale.metrics.jvm.ThreadStatesGaugeSet.threads:Ljava/lang/management/ThreadMXBean;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic getValue(Ljava/lang/management/ThreadMXBean;)Lcom/codahale/metrics/Gauge;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  java/lang/management/ThreadMXBean.getDaemonThreadCount()I (9 itf)
                  ()Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 58
            aload 1 /* gauges */
            ldc "deadlock.count"
            aload 0 /* this */
            invokedynamic getValue(Lcom/codahale/metrics/jvm/ThreadStatesGaugeSet;)Lcom/codahale/metrics/Gauge;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/codahale/metrics/jvm/ThreadStatesGaugeSet.lambda$3()Ljava/lang/Integer; (7)
                  ()Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 59
            aload 1 /* gauges */
            ldc "deadlocks"
            aload 0 /* this */
            getfield com.codahale.metrics.jvm.ThreadStatesGaugeSet.deadlockDetector:Lcom/codahale/metrics/jvm/ThreadDeadlockDetector;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic getValue(Lcom/codahale/metrics/jvm/ThreadDeadlockDetector;)Lcom/codahale/metrics/Gauge;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/codahale/metrics/jvm/ThreadDeadlockDetector.getDeadlockedThreads()Ljava/util/Set; (5)
                  ()Ljava/util/Set;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 61
            aload 1 /* gauges */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 1 // java.util.Map gauges
        end local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/codahale/metrics/jvm/ThreadStatesGaugeSet;
            1   13     1  gauges  Ljava/util/Map<Ljava/lang/String;Lcom/codahale/metrics/Metric;>;
            3    6     2   state  Ljava/lang/Thread$State;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lcom/codahale/metrics/Metric;>;

  private int getThreadCount(java.lang.Thread$State);
    descriptor: (Ljava/lang/Thread$State;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
        start local 1 // java.lang.Thread$State state
         0: .line 65
            aload 0 /* this */
            invokevirtual com.codahale.metrics.jvm.ThreadStatesGaugeSet.getThreadInfo:()[Ljava/lang/management/ThreadInfo;
            astore 2 /* allThreads */
        start local 2 // java.lang.management.ThreadInfo[] allThreads
         1: .line 66
            iconst_0
            istore 3 /* count */
        start local 3 // int count
         2: .line 67
            aload 2 /* allThreads */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 7
      StackMap locals: com.codahale.metrics.jvm.ThreadStatesGaugeSet java.lang.Thread$State java.lang.management.ThreadInfo[] int top int int java.lang.management.ThreadInfo[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* info */
        start local 4 // java.lang.management.ThreadInfo info
         4: .line 68
            aload 4 /* info */
            ifnull 6
            aload 4 /* info */
            invokevirtual java.lang.management.ThreadInfo.getThreadState:()Ljava/lang/Thread$State;
            aload 1 /* state */
            if_acmpne 6
         5: .line 69
            iinc 3 /* count */ 1
        end local 4 // java.lang.management.ThreadInfo info
         6: .line 67
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         7: iload 5
            iload 6
            if_icmplt 3
         8: .line 72
            iload 3 /* count */
            ireturn
        end local 3 // int count
        end local 2 // java.lang.management.ThreadInfo[] allThreads
        end local 1 // java.lang.Thread$State state
        end local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/codahale/metrics/jvm/ThreadStatesGaugeSet;
            0    9     1       state  Ljava/lang/Thread$State;
            1    9     2  allThreads  [Ljava/lang/management/ThreadInfo;
            2    9     3       count  I
            4    6     4        info  Ljava/lang/management/ThreadInfo;
    MethodParameters:
       Name  Flags
      state  

  java.lang.management.ThreadInfo[] getThreadInfo();
    descriptor: ()[Ljava/lang/management/ThreadInfo;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
         0: .line 76
            aload 0 /* this */
            getfield com.codahale.metrics.jvm.ThreadStatesGaugeSet.threads:Ljava/lang/management/ThreadMXBean;
            aload 0 /* this */
            getfield com.codahale.metrics.jvm.ThreadStatesGaugeSet.threads:Ljava/lang/management/ThreadMXBean;
            invokeinterface java.lang.management.ThreadMXBean.getAllThreadIds:()[J
            iconst_0
            invokeinterface java.lang.management.ThreadMXBean.getThreadInfo:([JI)[Ljava/lang/management/ThreadInfo;
            areturn
        end local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/codahale/metrics/jvm/ThreadStatesGaugeSet;

  private java.lang.Object lambda$0(java.lang.Thread$State);
    descriptor: (Ljava/lang/Thread$State;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
         0: .line 53
            aload 0 /* this */
            aload 1
            invokevirtual com.codahale.metrics.jvm.ThreadStatesGaugeSet.getThreadCount:(Ljava/lang/Thread$State;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/codahale/metrics/jvm/ThreadStatesGaugeSet;

  private java.lang.Integer lambda$3();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
         0: .line 58
            aload 0 /* this */
            getfield com.codahale.metrics.jvm.ThreadStatesGaugeSet.deadlockDetector:Lcom/codahale/metrics/jvm/ThreadDeadlockDetector;
            invokevirtual com.codahale.metrics.jvm.ThreadDeadlockDetector.getDeadlockedThreads:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 0 // com.codahale.metrics.jvm.ThreadStatesGaugeSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/codahale/metrics/jvm/ThreadStatesGaugeSet;
}
SourceFile: "ThreadStatesGaugeSet.java"
InnerClasses:
  public final State = java.lang.Thread$State of java.lang.Thread
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles