final class java.util.stream.ForEachOps$ForEachTask<S, T> extends java.util.concurrent.CountedCompleter<java.lang.Void>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.util.stream.ForEachOps$ForEachTask
  super_class: java.util.concurrent.CountedCompleter
{
  private java.util.Spliterator<S> spliterator;
    descriptor: Ljava/util/Spliterator;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Spliterator<TS;>;

  private final java.util.stream.Sink<S> sink;
    descriptor: Ljava/util/stream/Sink;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/stream/Sink<TS;>;

  private final java.util.stream.PipelineHelper<T> helper;
    descriptor: Ljava/util/stream/PipelineHelper;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/stream/PipelineHelper<TT;>;

  private long targetSize;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.util.stream.PipelineHelper<T>, java.util.Spliterator<S>, java.util.stream.Sink<S>);
    descriptor: (Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.util.stream.ForEachOps$ForEachTask this
        start local 1 // java.util.stream.PipelineHelper helper
        start local 2 // java.util.Spliterator spliterator
        start local 3 // java.util.stream.Sink sink
         0: .line 262
            aload 0 /* this */
            aconst_null
            invokespecial java.util.concurrent.CountedCompleter.<init>:(Ljava/util/concurrent/CountedCompleter;)V
         1: .line 263
            aload 0 /* this */
            aload 3 /* sink */
            putfield java.util.stream.ForEachOps$ForEachTask.sink:Ljava/util/stream/Sink;
         2: .line 264
            aload 0 /* this */
            aload 1 /* helper */
            putfield java.util.stream.ForEachOps$ForEachTask.helper:Ljava/util/stream/PipelineHelper;
         3: .line 265
            aload 0 /* this */
            aload 2 /* spliterator */
            putfield java.util.stream.ForEachOps$ForEachTask.spliterator:Ljava/util/Spliterator;
         4: .line 266
            aload 0 /* this */
            lconst_0
            putfield java.util.stream.ForEachOps$ForEachTask.targetSize:J
         5: .line 267
            return
        end local 3 // java.util.stream.Sink sink
        end local 2 // java.util.Spliterator spliterator
        end local 1 // java.util.stream.PipelineHelper helper
        end local 0 // java.util.stream.ForEachOps$ForEachTask this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
            0    6     1       helper  Ljava/util/stream/PipelineHelper<TT;>;
            0    6     2  spliterator  Ljava/util/Spliterator<TS;>;
            0    6     3         sink  Ljava/util/stream/Sink<TS;>;
    Signature: (Ljava/util/stream/PipelineHelper<TT;>;Ljava/util/Spliterator<TS;>;Ljava/util/stream/Sink<TS;>;)V
    MethodParameters:
             Name  Flags
      helper       
      spliterator  
      sink         

  void <init>(java.util.stream.ForEachOps$ForEachTask<S, T>, java.util.Spliterator<S>);
    descriptor: (Ljava/util/stream/ForEachOps$ForEachTask;Ljava/util/Spliterator;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.util.stream.ForEachOps$ForEachTask this
        start local 1 // java.util.stream.ForEachOps$ForEachTask parent
        start local 2 // java.util.Spliterator spliterator
         0: .line 270
            aload 0 /* this */
            aload 1 /* parent */
            invokespecial java.util.concurrent.CountedCompleter.<init>:(Ljava/util/concurrent/CountedCompleter;)V
         1: .line 271
            aload 0 /* this */
            aload 2 /* spliterator */
            putfield java.util.stream.ForEachOps$ForEachTask.spliterator:Ljava/util/Spliterator;
         2: .line 272
            aload 0 /* this */
            aload 1 /* parent */
            getfield java.util.stream.ForEachOps$ForEachTask.sink:Ljava/util/stream/Sink;
            putfield java.util.stream.ForEachOps$ForEachTask.sink:Ljava/util/stream/Sink;
         3: .line 273
            aload 0 /* this */
            aload 1 /* parent */
            getfield java.util.stream.ForEachOps$ForEachTask.targetSize:J
            putfield java.util.stream.ForEachOps$ForEachTask.targetSize:J
         4: .line 274
            aload 0 /* this */
            aload 1 /* parent */
            getfield java.util.stream.ForEachOps$ForEachTask.helper:Ljava/util/stream/PipelineHelper;
            putfield java.util.stream.ForEachOps$ForEachTask.helper:Ljava/util/stream/PipelineHelper;
         5: .line 275
            return
        end local 2 // java.util.Spliterator spliterator
        end local 1 // java.util.stream.ForEachOps$ForEachTask parent
        end local 0 // java.util.stream.ForEachOps$ForEachTask this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
            0    6     1       parent  Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
            0    6     2  spliterator  Ljava/util/Spliterator<TS;>;
    Signature: (Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;Ljava/util/Spliterator<TS;>;)V
    MethodParameters:
             Name  Flags
      parent       
      spliterator  

  public void compute();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=13, args_size=1
        start local 0 // java.util.stream.ForEachOps$ForEachTask this
         0: .line 279
            aload 0 /* this */
            getfield java.util.stream.ForEachOps$ForEachTask.spliterator:Ljava/util/Spliterator;
            astore 1 /* rightSplit */
        start local 1 // java.util.Spliterator rightSplit
         1: .line 280
            aload 1 /* rightSplit */
            invokeinterface java.util.Spliterator.estimateSize:()J
            lstore 3 /* sizeEstimate */
        start local 3 // long sizeEstimate
         2: .line 281
            aload 0 /* this */
            getfield java.util.stream.ForEachOps$ForEachTask.targetSize:J
            dup2
            lstore 5 /* sizeThreshold */
        start local 5 // long sizeThreshold
         3: lconst_0
            lcmp
            ifne 5
         4: .line 282
            aload 0 /* this */
            lload 3 /* sizeEstimate */
            invokestatic java.util.stream.AbstractTask.suggestTargetSize:(J)J
            dup2
            lstore 5 /* sizeThreshold */
            putfield java.util.stream.ForEachOps$ForEachTask.targetSize:J
         5: .line 283
      StackMap locals: java.util.stream.ForEachOps$ForEachTask java.util.Spliterator top long long
      StackMap stack:
            getstatic java.util.stream.StreamOpFlag.SHORT_CIRCUIT:Ljava/util/stream/StreamOpFlag;
            aload 0 /* this */
            getfield java.util.stream.ForEachOps$ForEachTask.helper:Ljava/util/stream/PipelineHelper;
            invokevirtual java.util.stream.PipelineHelper.getStreamAndOpFlags:()I
            invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
            istore 7 /* isShortCircuit */
        start local 7 // boolean isShortCircuit
         6: .line 284
            iconst_0
            istore 8 /* forkRight */
        start local 8 // boolean forkRight
         7: .line 285
            aload 0 /* this */
            getfield java.util.stream.ForEachOps$ForEachTask.sink:Ljava/util/stream/Sink;
            astore 9 /* taskSink */
        start local 9 // java.util.stream.Sink taskSink
         8: .line 286
            aload 0 /* this */
            astore 10 /* task */
        start local 10 // java.util.stream.ForEachOps$ForEachTask task
         9: .line 287
            goto 27
        10: .line 288
      StackMap locals: java.util.stream.ForEachOps$ForEachTask java.util.Spliterator top long long int int java.util.stream.Sink java.util.stream.ForEachOps$ForEachTask
      StackMap stack:
            lload 3 /* sizeEstimate */
            lload 5 /* sizeThreshold */
            lcmp
            ifle 13
        11: .line 289
            aload 1 /* rightSplit */
            invokeinterface java.util.Spliterator.trySplit:()Ljava/util/Spliterator;
            dup
            astore 2 /* leftSplit */
        start local 2 // java.util.Spliterator leftSplit
        12: ifnonnull 15
        end local 2 // java.util.Spliterator leftSplit
        13: .line 290
      StackMap locals:
      StackMap stack:
            aload 10 /* task */
            getfield java.util.stream.ForEachOps$ForEachTask.helper:Ljava/util/stream/PipelineHelper;
            aload 9 /* taskSink */
            aload 1 /* rightSplit */
            invokevirtual java.util.stream.PipelineHelper.copyInto:(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
        14: .line 291
            goto 28
        start local 2 // java.util.Spliterator leftSplit
        15: .line 293
      StackMap locals: java.util.stream.ForEachOps$ForEachTask java.util.Spliterator java.util.Spliterator long long int int java.util.stream.Sink java.util.stream.ForEachOps$ForEachTask
      StackMap stack:
            new java.util.stream.ForEachOps$ForEachTask
            dup
            aload 10 /* task */
            aload 2 /* leftSplit */
            invokespecial java.util.stream.ForEachOps$ForEachTask.<init>:(Ljava/util/stream/ForEachOps$ForEachTask;Ljava/util/Spliterator;)V
            astore 11 /* leftTask */
        start local 11 // java.util.stream.ForEachOps$ForEachTask leftTask
        16: .line 294
            aload 10 /* task */
            iconst_1
            invokevirtual java.util.stream.ForEachOps$ForEachTask.addToPendingCount:(I)V
        17: .line 296
            iload 8 /* forkRight */
            ifeq 23
        18: .line 297
            iconst_0
            istore 8 /* forkRight */
        19: .line 298
            aload 2 /* leftSplit */
            astore 1 /* rightSplit */
        20: .line 299
            aload 10 /* task */
            astore 12 /* taskToFork */
        start local 12 // java.util.stream.ForEachOps$ForEachTask taskToFork
        21: .line 300
            aload 11 /* leftTask */
            astore 10 /* task */
        22: .line 301
            goto 25
        end local 12 // java.util.stream.ForEachOps$ForEachTask taskToFork
        23: .line 303
      StackMap locals: java.util.stream.ForEachOps$ForEachTask
      StackMap stack:
            iconst_1
            istore 8 /* forkRight */
        24: .line 304
            aload 11 /* leftTask */
            astore 12 /* taskToFork */
        start local 12 // java.util.stream.ForEachOps$ForEachTask taskToFork
        25: .line 306
      StackMap locals: java.util.stream.ForEachOps$ForEachTask
      StackMap stack:
            aload 12 /* taskToFork */
            invokevirtual java.util.stream.ForEachOps$ForEachTask.fork:()Ljava/util/concurrent/ForkJoinTask;
            pop
        26: .line 307
            aload 1 /* rightSplit */
            invokeinterface java.util.Spliterator.estimateSize:()J
            lstore 3 /* sizeEstimate */
        end local 12 // java.util.stream.ForEachOps$ForEachTask taskToFork
        end local 11 // java.util.stream.ForEachOps$ForEachTask leftTask
        end local 2 // java.util.Spliterator leftSplit
        27: .line 287
      StackMap locals: java.util.stream.ForEachOps$ForEachTask java.util.Spliterator top long long int int java.util.stream.Sink java.util.stream.ForEachOps$ForEachTask
      StackMap stack:
            iload 7 /* isShortCircuit */
            ifeq 10
            aload 9 /* taskSink */
            invokeinterface java.util.stream.Sink.cancellationRequested:()Z
            ifeq 10
        28: .line 309
      StackMap locals:
      StackMap stack:
            aload 10 /* task */
            aconst_null
            putfield java.util.stream.ForEachOps$ForEachTask.spliterator:Ljava/util/Spliterator;
        29: .line 310
            aload 10 /* task */
            invokevirtual java.util.stream.ForEachOps$ForEachTask.propagateCompletion:()V
        30: .line 311
            return
        end local 10 // java.util.stream.ForEachOps$ForEachTask task
        end local 9 // java.util.stream.Sink taskSink
        end local 8 // boolean forkRight
        end local 7 // boolean isShortCircuit
        end local 5 // long sizeThreshold
        end local 3 // long sizeEstimate
        end local 1 // java.util.Spliterator rightSplit
        end local 0 // java.util.stream.ForEachOps$ForEachTask this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   31     0            this  Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
            1   31     1      rightSplit  Ljava/util/Spliterator<TS;>;
           12   13     2       leftSplit  Ljava/util/Spliterator<TS;>;
           15   27     2       leftSplit  Ljava/util/Spliterator<TS;>;
            2   31     3    sizeEstimate  J
            3   31     5   sizeThreshold  J
            6   31     7  isShortCircuit  Z
            7   31     8       forkRight  Z
            8   31     9        taskSink  Ljava/util/stream/Sink<TS;>;
            9   31    10            task  Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
           16   27    11        leftTask  Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
           21   23    12      taskToFork  Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
           25   27    12      taskToFork  Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
}
Signature: <S:Ljava/lang/Object;T:Ljava/lang/Object;>Ljava/util/concurrent/CountedCompleter<Ljava/lang/Void;>;
SourceFile: "ForEachOps.java"
NestHost: java.util.stream.ForEachOps
InnerClasses:
  final ForEachTask = java.util.stream.ForEachOps$ForEachTask of java.util.stream.ForEachOps