class org.xnio.IoUtils$RetryingChannelSource<T extends java.nio.channels.Channel> implements org.xnio.ChannelSource<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.xnio.IoUtils$RetryingChannelSource
  super_class: java.lang.Object
{
  private final int maxTries;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.xnio.ChannelSource<T> delegate;
    descriptor: Lorg/xnio/ChannelSource;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/xnio/ChannelSource<TT;>;

  void <init>(int, org.xnio.ChannelSource<T>);
    descriptor: (ILorg/xnio/ChannelSource;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.xnio.IoUtils$RetryingChannelSource this
        start local 1 // int maxTries
        start local 2 // org.xnio.ChannelSource delegate
         0: .line 668
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 669
            aload 0 /* this */
            iload 1 /* maxTries */
            putfield org.xnio.IoUtils$RetryingChannelSource.maxTries:I
         2: .line 670
            aload 0 /* this */
            aload 2 /* delegate */
            putfield org.xnio.IoUtils$RetryingChannelSource.delegate:Lorg/xnio/ChannelSource;
         3: .line 671
            return
        end local 2 // org.xnio.ChannelSource delegate
        end local 1 // int maxTries
        end local 0 // org.xnio.IoUtils$RetryingChannelSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/xnio/IoUtils$RetryingChannelSource<TT;>;
            0    4     1  maxTries  I
            0    4     2  delegate  Lorg/xnio/ChannelSource<TT;>;
    Signature: (ILorg/xnio/ChannelSource<TT;>;)V
    MethodParameters:
          Name  Flags
      maxTries  final
      delegate  final

  public org.xnio.IoFuture<T> open(org.xnio.ChannelListener<? super T>);
    descriptor: (Lorg/xnio/ChannelListener;)Lorg/xnio/IoFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.xnio.IoUtils$RetryingChannelSource this
        start local 1 // org.xnio.ChannelListener openListener
         0: .line 674
            new org.xnio.FutureResult
            dup
            invokespecial org.xnio.FutureResult.<init>:()V
            astore 2 /* result */
        start local 2 // org.xnio.FutureResult result
         1: .line 675
            new org.xnio.IoUtils$RetryingNotifier
            dup
            aload 0 /* this */
            getfield org.xnio.IoUtils$RetryingChannelSource.maxTries:I
            aload 2 /* result */
            aload 0 /* this */
            getfield org.xnio.IoUtils$RetryingChannelSource.delegate:Lorg/xnio/ChannelSource;
            aload 1 /* openListener */
            invokespecial org.xnio.IoUtils$RetryingNotifier.<init>:(ILorg/xnio/Result;Lorg/xnio/ChannelSource;Lorg/xnio/ChannelListener;)V
            astore 3 /* notifier */
        start local 3 // org.xnio.IoUtils$RetryingNotifier notifier
         2: .line 676
            aload 3 /* notifier */
            aload 2 /* result */
            invokevirtual org.xnio.IoUtils$RetryingNotifier.tryOne:(Lorg/xnio/Result;)V
         3: .line 677
            aload 2 /* result */
            invokevirtual org.xnio.FutureResult.getIoFuture:()Lorg/xnio/IoFuture;
            areturn
        end local 3 // org.xnio.IoUtils$RetryingNotifier notifier
        end local 2 // org.xnio.FutureResult result
        end local 1 // org.xnio.ChannelListener openListener
        end local 0 // org.xnio.IoUtils$RetryingChannelSource this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/xnio/IoUtils$RetryingChannelSource<TT;>;
            0    4     1  openListener  Lorg/xnio/ChannelListener<-TT;>;
            1    4     2        result  Lorg/xnio/FutureResult<TT;>;
            2    4     3      notifier  Lorg/xnio/IoUtils$RetryingNotifier<TT;>;
    Signature: (Lorg/xnio/ChannelListener<-TT;>;)Lorg/xnio/IoFuture<TT;>;
    MethodParameters:
              Name  Flags
      openListener  final
}
Signature: <T::Ljava/nio/channels/Channel;>Ljava/lang/Object;Lorg/xnio/ChannelSource<TT;>;
SourceFile: "IoUtils.java"
NestHost: org.xnio.IoUtils
InnerClasses:
  private RetryingChannelSource = org.xnio.IoUtils$RetryingChannelSource of org.xnio.IoUtils
  private RetryingNotifier = org.xnio.IoUtils$RetryingNotifier of org.xnio.IoUtils