public abstract class java.lang.Process
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.lang.Process
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Process this
         0: .line 96
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Process;

  public abstract java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.io.InputStream getErrorStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int waitFor();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.lang.InterruptedException

  public boolean waitFor(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // java.lang.Process this
        start local 1 // long timeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 209
            invokestatic java.lang.System.nanoTime:()J
            lstore 4 /* startTime */
        start local 4 // long startTime
         1: .line 210
            aload 3 /* unit */
            lload 1 /* timeout */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 6 /* rem */
        start local 6 // long rem
         2: .line 214
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Process.exitValue:()I
            pop
         3: .line 215
            iconst_1
            ireturn
         4: .line 216
      StackMap locals:
      StackMap stack: java.lang.IllegalThreadStateException
            pop
         5: .line 217
            lload 6 /* rem */
            lconst_0
            lcmp
            ifle 8
         6: .line 219
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            lload 6 /* rem */
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            lconst_1
            ladd
            ldc 100
            invokestatic java.lang.Math.min:(JJ)J
         7: .line 218
            invokestatic java.lang.Thread.sleep:(J)V
         8: .line 221
      StackMap locals:
      StackMap stack:
            aload 3 /* unit */
            lload 1 /* timeout */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            invokestatic java.lang.System.nanoTime:()J
            lload 4 /* startTime */
            lsub
            lsub
            lstore 6 /* rem */
         9: .line 222
            lload 6 /* rem */
            lconst_0
        10: .line 212
            lcmp
            ifgt 2
        11: .line 223
            iconst_0
            ireturn
        end local 6 // long rem
        end local 4 // long startTime
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long timeout
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Ljava/lang/Process;
            0   12     1    timeout  J
            0   12     3       unit  Ljava/util/concurrent/TimeUnit;
            1   12     4  startTime  J
            2   12     6        rem  J
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.IllegalThreadStateException
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      timeout  
      unit     

  public abstract int exitValue();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void destroy();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public java.lang.Process destroyForcibly();
    descriptor: ()Ljava/lang/Process;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Process this
         0: .line 284
            aload 0 /* this */
            invokevirtual java.lang.Process.destroy:()V
         1: .line 285
            aload 0 /* this */
            areturn
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Process;

  public boolean supportsNormalTermination();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Process this
         0: .line 310
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         1: .line 311
            ldc ".supportsNormalTermination() not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 310
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/Process;

  public boolean isAlive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Process this
         0: .line 324
            aload 0 /* this */
            invokevirtual java.lang.Process.exitValue:()I
            pop
         1: .line 325
            iconst_0
            ireturn
         2: .line 326
      StackMap locals:
      StackMap stack: java.lang.IllegalThreadStateException
            pop
         3: .line 327
            iconst_1
            ireturn
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/Process;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalThreadStateException

  public long pid();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Process this
         0: .line 346
            aload 0 /* this */
            invokevirtual java.lang.Process.toHandle:()Ljava/lang/ProcessHandle;
            invokeinterface java.lang.ProcessHandle.pid:()J
            lreturn
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Process;

  public java.util.concurrent.CompletableFuture<java.lang.Process> onExit();
    descriptor: ()Ljava/util/concurrent/CompletableFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Process this
         0: .line 415
            aload 0 /* this */
            invokedynamic get(Ljava/lang/Process;)Ljava/util/function/Supplier;
              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/Process.waitForInternal()Ljava/lang/Process; (7)
                  ()Ljava/lang/Process;
            invokestatic java.util.concurrent.CompletableFuture.supplyAsync:(Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;
            areturn
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Process;
    Signature: ()Ljava/util/concurrent/CompletableFuture<Ljava/lang/Process;>;

  private java.lang.Process waitForInternal();
    descriptor: ()Ljava/lang/Process;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Process this
         0: .line 428
            iconst_0
            istore 1 /* interrupted */
        start local 1 // boolean interrupted
         1: .line 431
      StackMap locals: int
      StackMap stack:
            new java.lang.Process$1
            dup
            aload 0 /* this */
            invokespecial java.lang.Process$1.<init>:(Ljava/lang/Process;)V
            invokestatic java.util.concurrent.ForkJoinPool.managedBlock:(Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V
         2: .line 443
            goto 6
         3: .line 444
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
         4: .line 445
            iconst_1
            istore 1 /* interrupted */
         5: .line 429
            goto 1
         6: .line 448
      StackMap locals:
      StackMap stack:
            iload 1 /* interrupted */
            ifeq 8
         7: .line 449
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         8: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // boolean interrupted
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Ljava/lang/Process;
            1    9     1  interrupted  Z
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.InterruptedException

  public java.lang.ProcessHandle toHandle();
    descriptor: ()Ljava/lang/ProcessHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Process this
         0: .line 477
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         1: .line 478
            ldc ".toHandle() not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 477
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/Process;

  public java.lang.ProcessHandle$Info info();
    descriptor: ()Ljava/lang/ProcessHandle$Info;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Process this
         0: .line 497
            aload 0 /* this */
            invokevirtual java.lang.Process.toHandle:()Ljava/lang/ProcessHandle;
            invokeinterface java.lang.ProcessHandle.info:()Ljava/lang/ProcessHandle$Info;
            areturn
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Process;

  public java.util.stream.Stream<java.lang.ProcessHandle> children();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Process this
         0: .line 522
            aload 0 /* this */
            invokevirtual java.lang.Process.toHandle:()Ljava/lang/ProcessHandle;
            invokeinterface java.lang.ProcessHandle.children:()Ljava/util/stream/Stream;
            areturn
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Process;
    Signature: ()Ljava/util/stream/Stream<Ljava/lang/ProcessHandle;>;

  public java.util.stream.Stream<java.lang.ProcessHandle> descendants();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Process this
         0: .line 548
            aload 0 /* this */
            invokevirtual java.lang.Process.toHandle:()Ljava/lang/ProcessHandle;
            invokeinterface java.lang.ProcessHandle.descendants:()Ljava/util/stream/Stream;
            areturn
        end local 0 // java.lang.Process this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Process;
    Signature: ()Ljava/util/stream/Stream<Ljava/lang/ProcessHandle;>;
}
SourceFile: "Process.java"
NestMembers:
  java.lang.Process$1  java.lang.Process$PipeInputStream
InnerClasses:
  java.lang.Process$1
  PipeInputStream = java.lang.Process$PipeInputStream of java.lang.Process
  public abstract Info = java.lang.ProcessHandle$Info of java.lang.ProcessHandle
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract ManagedBlocker = java.util.concurrent.ForkJoinPool$ManagedBlocker of java.util.concurrent.ForkJoinPool