abstract class sun.nio.fs.AbstractWatchService implements java.nio.file.WatchService
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: sun.nio.fs.AbstractWatchService
  super_class: java.lang.Object
{
  private final java.util.concurrent.LinkedBlockingDeque<java.nio.file.WatchKey> pendingKeys;
    descriptor: Ljava/util/concurrent/LinkedBlockingDeque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/LinkedBlockingDeque<Ljava/nio/file/WatchKey;>;

  private final java.nio.file.WatchKey CLOSE_KEY;
    descriptor: Ljava/nio/file/WatchKey;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile boolean closed;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final java.lang.Object closeLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // sun.nio.fs.AbstractWatchService this
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 39
            aload 0 /* this */
         2: .line 40
            new java.util.concurrent.LinkedBlockingDeque
            dup
            invokespecial java.util.concurrent.LinkedBlockingDeque.<init>:()V
            putfield sun.nio.fs.AbstractWatchService.pendingKeys:Ljava/util/concurrent/LinkedBlockingDeque;
         3: .line 43
            aload 0 /* this */
         4: .line 44
            new sun.nio.fs.AbstractWatchService$1
            dup
            aload 0 /* this */
            aconst_null
            aconst_null
            invokespecial sun.nio.fs.AbstractWatchService$1.<init>:(Lsun/nio/fs/AbstractWatchService;Ljava/nio/file/Path;Lsun/nio/fs/AbstractWatchService;)V
            putfield sun.nio.fs.AbstractWatchService.CLOSE_KEY:Ljava/nio/file/WatchKey;
         5: .line 57
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.nio.fs.AbstractWatchService.closeLock:Ljava/lang/Object;
         6: .line 60
            return
        end local 0 // sun.nio.fs.AbstractWatchService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/nio/fs/AbstractWatchService;

  abstract java.nio.file.WatchKey register(java.nio.file.Path, java.nio.file.WatchEvent$Kind<?>[], java.nio.file.WatchEvent$Modifier[]);
    descriptor: (Ljava/nio/file/Path;[Ljava/nio/file/WatchEvent$Kind;[Ljava/nio/file/WatchEvent$Modifier;)Ljava/nio/file/WatchKey;
    flags: (0x0480) ACC_VARARGS, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;[Ljava/nio/file/WatchEvent$Kind<*>;[Ljava/nio/file/WatchEvent$Modifier;)Ljava/nio/file/WatchKey;
    MethodParameters:
          Name  Flags
      path      
      events    
      modifers  

  final void enqueueKey(java.nio.file.WatchKey);
    descriptor: (Ljava/nio/file/WatchKey;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.nio.fs.AbstractWatchService this
        start local 1 // java.nio.file.WatchKey key
         0: .line 72
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.pendingKeys:Ljava/util/concurrent/LinkedBlockingDeque;
            aload 1 /* key */
            invokevirtual java.util.concurrent.LinkedBlockingDeque.offer:(Ljava/lang/Object;)Z
            pop
         1: .line 73
            return
        end local 1 // java.nio.file.WatchKey key
        end local 0 // sun.nio.fs.AbstractWatchService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/fs/AbstractWatchService;
            0    2     1   key  Ljava/nio/file/WatchKey;
    MethodParameters:
      Name  Flags
      key   

  private void checkOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.fs.AbstractWatchService this
         0: .line 79
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.closed:Z
            ifeq 2
         1: .line 80
            new java.nio.file.ClosedWatchServiceException
            dup
            invokespecial java.nio.file.ClosedWatchServiceException.<init>:()V
            athrow
         2: .line 81
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.fs.AbstractWatchService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/nio/fs/AbstractWatchService;

  private void checkKey(java.nio.file.WatchKey);
    descriptor: (Ljava/nio/file/WatchKey;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.nio.fs.AbstractWatchService this
        start local 1 // java.nio.file.WatchKey key
         0: .line 88
            aload 1 /* key */
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.CLOSE_KEY:Ljava/nio/file/WatchKey;
            if_acmpne 2
         1: .line 90
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual sun.nio.fs.AbstractWatchService.enqueueKey:(Ljava/nio/file/WatchKey;)V
         2: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.fs.AbstractWatchService.checkOpen:()V
         3: .line 93
            return
        end local 1 // java.nio.file.WatchKey key
        end local 0 // sun.nio.fs.AbstractWatchService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/nio/fs/AbstractWatchService;
            0    4     1   key  Ljava/nio/file/WatchKey;
    MethodParameters:
      Name  Flags
      key   

  public final java.nio.file.WatchKey poll();
    descriptor: ()Ljava/nio/file/WatchKey;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.fs.AbstractWatchService this
         0: .line 97
            aload 0 /* this */
            invokevirtual sun.nio.fs.AbstractWatchService.checkOpen:()V
         1: .line 98
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.pendingKeys:Ljava/util/concurrent/LinkedBlockingDeque;
            invokevirtual java.util.concurrent.LinkedBlockingDeque.poll:()Ljava/lang/Object;
            checkcast java.nio.file.WatchKey
            astore 1 /* key */
        start local 1 // java.nio.file.WatchKey key
         2: .line 99
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual sun.nio.fs.AbstractWatchService.checkKey:(Ljava/nio/file/WatchKey;)V
         3: .line 100
            aload 1 /* key */
            areturn
        end local 1 // java.nio.file.WatchKey key
        end local 0 // sun.nio.fs.AbstractWatchService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/nio/fs/AbstractWatchService;
            2    4     1   key  Ljava/nio/file/WatchKey;

  public final java.nio.file.WatchKey poll(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)Ljava/nio/file/WatchKey;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.nio.fs.AbstractWatchService this
        start local 1 // long timeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 107
            aload 0 /* this */
            invokevirtual sun.nio.fs.AbstractWatchService.checkOpen:()V
         1: .line 108
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.pendingKeys:Ljava/util/concurrent/LinkedBlockingDeque;
            lload 1 /* timeout */
            aload 3 /* unit */
            invokevirtual java.util.concurrent.LinkedBlockingDeque.poll:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
            checkcast java.nio.file.WatchKey
            astore 4 /* key */
        start local 4 // java.nio.file.WatchKey key
         2: .line 109
            aload 0 /* this */
            aload 4 /* key */
            invokevirtual sun.nio.fs.AbstractWatchService.checkKey:(Ljava/nio/file/WatchKey;)V
         3: .line 110
            aload 4 /* key */
            areturn
        end local 4 // java.nio.file.WatchKey key
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long timeout
        end local 0 // sun.nio.fs.AbstractWatchService this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lsun/nio/fs/AbstractWatchService;
            0    4     1  timeout  J
            0    4     3     unit  Ljava/util/concurrent/TimeUnit;
            2    4     4      key  Ljava/nio/file/WatchKey;
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      timeout  
      unit     

  public final java.nio.file.WatchKey take();
    descriptor: ()Ljava/nio/file/WatchKey;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.fs.AbstractWatchService this
         0: .line 117
            aload 0 /* this */
            invokevirtual sun.nio.fs.AbstractWatchService.checkOpen:()V
         1: .line 118
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.pendingKeys:Ljava/util/concurrent/LinkedBlockingDeque;
            invokevirtual java.util.concurrent.LinkedBlockingDeque.take:()Ljava/lang/Object;
            checkcast java.nio.file.WatchKey
            astore 1 /* key */
        start local 1 // java.nio.file.WatchKey key
         2: .line 119
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual sun.nio.fs.AbstractWatchService.checkKey:(Ljava/nio/file/WatchKey;)V
         3: .line 120
            aload 1 /* key */
            areturn
        end local 1 // java.nio.file.WatchKey key
        end local 0 // sun.nio.fs.AbstractWatchService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/nio/fs/AbstractWatchService;
            2    4     1   key  Ljava/nio/file/WatchKey;
    Exceptions:
      throws java.lang.InterruptedException

  final boolean isOpen();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.fs.AbstractWatchService this
         0: .line 127
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.closed:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.nio.fs.AbstractWatchService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/nio/fs/AbstractWatchService;

  final java.lang.Object closeLock();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.fs.AbstractWatchService this
         0: .line 134
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.closeLock:Ljava/lang/Object;
            areturn
        end local 0 // sun.nio.fs.AbstractWatchService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/fs/AbstractWatchService;

  abstract void implClose();
    descriptor: ()V
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public final void close();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.fs.AbstractWatchService this
         0: .line 147
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.closeLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 149
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.closed:Z
            ifeq 4
         2: .line 150
            aload 1
            monitorexit
         3: return
         4: .line 151
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.nio.fs.AbstractWatchService.closed:Z
         5: .line 153
            aload 0 /* this */
            invokevirtual sun.nio.fs.AbstractWatchService.implClose:()V
         6: .line 157
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.pendingKeys:Ljava/util/concurrent/LinkedBlockingDeque;
            invokevirtual java.util.concurrent.LinkedBlockingDeque.clear:()V
         7: .line 158
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.pendingKeys:Ljava/util/concurrent/LinkedBlockingDeque;
            aload 0 /* this */
            getfield sun.nio.fs.AbstractWatchService.CLOSE_KEY:Ljava/nio/file/WatchKey;
            invokevirtual java.util.concurrent.LinkedBlockingDeque.offer:(Ljava/lang/Object;)Z
            pop
         8: .line 147
            aload 1
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 160
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.fs.AbstractWatchService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/nio/fs/AbstractWatchService;
      Exception table:
        from    to  target  type
           1     3      10  any
           4     9      10  any
          10    11      10  any
    Exceptions:
      throws java.io.IOException
}
SourceFile: "AbstractWatchService.java"
NestMembers:
  sun.nio.fs.AbstractWatchService$1
InnerClasses:
  public abstract Kind = java.nio.file.WatchEvent$Kind of java.nio.file.WatchEvent
  public abstract Modifier = java.nio.file.WatchEvent$Modifier of java.nio.file.WatchEvent
  sun.nio.fs.AbstractWatchService$1