public class jdk.internal.org.jline.utils.NonBlockingReaderImpl extends jdk.internal.org.jline.utils.NonBlockingReader
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.org.jline.utils.NonBlockingReaderImpl
super_class: jdk.internal.org.jline.utils.NonBlockingReader
{
public static final int READ_EXPIRED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -2
private java.io.Reader in;
descriptor: Ljava/io/Reader;
flags: (0x0002) ACC_PRIVATE
private int ch;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean threadIsReading;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.io.IOException exception;
descriptor: Ljava/io/IOException;
flags: (0x0002) ACC_PRIVATE
private long threadDelay;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private java.lang.Thread thread;
descriptor: Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/internal/org/jline/utils/NonBlockingReaderImpl;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic jdk.internal.org.jline.utils.NonBlockingReaderImpl.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String, java.io.Reader);
descriptor: (Ljava/lang/String;Ljava/io/Reader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial jdk.internal.org.jline.utils.NonBlockingReader.<init>:()V
1: aload 0
bipush -2
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.ch:I
2: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadIsReading:Z
3: aload 0
aconst_null
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
4: aload 0
ldc 60000
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadDelay:J
5: aload 0
aload 2
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.in:Ljava/io/Reader;
6: aload 0
aload 1
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.name:Ljava/lang/String;
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/org/jline/utils/NonBlockingReaderImpl;
0 8 1 name Ljava/lang/String;
0 8 2 in Ljava/io/Reader;
MethodParameters:
Name Flags
name
in
private synchronized void startReadingThreadIfNeeded();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.thread:Ljava/lang/Thread;
ifnonnull 5
1: aload 0
new java.lang.Thread
dup
aload 0
invokedynamic run(Ljdk/internal/org/jline/utils/NonBlockingReaderImpl;)Ljava/lang/Runnable;
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:
()V
jdk/internal/org/jline/utils/NonBlockingReaderImpl.run()V (7)
()V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.thread:Ljava/lang/Thread;
2: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.thread:Ljava/lang/Thread;
new java.lang.StringBuilder
dup
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.name:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " non blocking reader thread"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
3: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.thread:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
4: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/org/jline/utils/NonBlockingReaderImpl;
public synchronized void shutdown();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.thread:Ljava/lang/Thread;
ifnull 2
1: aload 0
invokevirtual java.lang.Object.notify:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/org/jline/utils/NonBlockingReaderImpl;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.in:Ljava/io/Reader;
invokevirtual java.io.Reader.close:()V
1: aload 0
invokevirtual jdk.internal.org.jline.utils.NonBlockingReaderImpl.shutdown:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/org/jline/utils/NonBlockingReaderImpl;
Exceptions:
throws java.io.IOException
public synchronized boolean ready();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.ch:I
ifge 1
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.in:Ljava/io/Reader;
invokevirtual java.io.Reader.ready:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/org/jline/utils/NonBlockingReaderImpl;
Exceptions:
throws java.io.IOException
protected synchronized int read(long, boolean);
descriptor: (JZ)I
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
ifnull 6
1: getstatic jdk.internal.org.jline.utils.NonBlockingReaderImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.ch:I
bipush -2
if_icmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
astore 4
start local 4 3: iload 3
ifne 5
4: aload 0
aconst_null
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
5: StackMap locals: java.io.IOException
StackMap stack:
aload 4
athrow
end local 4 6: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.ch:I
iconst_m1
if_icmplt 8
7: getstatic jdk.internal.org.jline.utils.NonBlockingReaderImpl.$assertionsDisabled:Z
ifne 37
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
ifnull 37
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
iload 3
ifne 11
lload 1
lconst_0
lcmp
ifgt 11
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadIsReading:Z
ifne 11
9: aload 0
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.in:Ljava/io/Reader;
invokevirtual java.io.Reader.read:()I
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.ch:I
10: goto 37
11: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadIsReading:Z
ifne 15
12: aload 0
iconst_1
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadIsReading:Z
13: aload 0
invokevirtual jdk.internal.org.jline.utils.NonBlockingReaderImpl.startReadingThreadIfNeeded:()V
14: aload 0
invokevirtual java.lang.Object.notifyAll:()V
15: StackMap locals:
StackMap stack:
lload 1
lconst_0
lcmp
ifgt 16
iconst_1
goto 17
StackMap locals:
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: istore 4
start local 4 18: goto 36
19: StackMap locals: int
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 5
start local 5 20: invokestatic java.lang.Thread.interrupted:()Z
ifeq 22
21: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
22: StackMap locals: long
StackMap stack:
aload 0
lload 1
invokevirtual java.lang.Object.wait:(J)V
23: goto 26
24: StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 7
start local 7 25: aload 0
new java.io.InterruptedIOException
dup
invokespecial java.io.InterruptedIOException.<init>:()V
aload 7
invokevirtual java.io.InterruptedIOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast java.io.IOException
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
end local 7 26: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
ifnull 32
27: getstatic jdk.internal.org.jline.utils.NonBlockingReaderImpl.$assertionsDisabled:Z
ifne 28
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.ch:I
bipush -2
if_icmpeq 28
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
28: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
astore 7
start local 7 29: iload 3
ifne 31
30: aload 0
aconst_null
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
31: StackMap locals: java.io.IOException
StackMap stack:
aload 7
athrow
end local 7 32: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.ch:I
iconst_m1
if_icmplt 34
33: getstatic jdk.internal.org.jline.utils.NonBlockingReaderImpl.$assertionsDisabled:Z
ifne 37
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
ifnull 37
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
34: StackMap locals:
StackMap stack:
iload 4
ifne 36
35: lload 1
invokestatic java.lang.System.currentTimeMillis:()J
lload 5
lsub
lsub
lstore 1
end local 5 36: StackMap locals:
StackMap stack:
iload 4
ifne 19
lload 1
lconst_0
lcmp
ifgt 19
end local 4 37: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.ch:I
istore 4
start local 4 38: iload 3
ifne 40
39: aload 0
bipush -2
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.ch:I
40: StackMap locals: int
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Ljdk/internal/org/jline/utils/NonBlockingReaderImpl;
0 41 1 timeout J
0 41 3 isPeek Z
3 6 4 toBeThrown Ljava/io/IOException;
18 37 4 isInfinite Z
20 36 5 start J
25 26 7 e Ljava/lang/InterruptedException;
29 32 7 toBeThrown Ljava/io/IOException;
38 41 4 ret I
Exception table:
from to target type
20 23 24 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
timeout
isPeek
private void run();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=1
start local 0 0: iconst_1
anewarray java.lang.Object
dup
iconst_0
1: ldc "NonBlockingReader start"
aastore
invokestatic jdk.internal.org.jline.utils.Log.debug:([Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
3: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadIsReading:Z
istore 1
start local 1 4: iload 1
ifne 8
5: aload 0
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadDelay:J
invokevirtual java.lang.Object.wait:(J)V
6: goto 8
StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl int jdk.internal.org.jline.utils.NonBlockingReaderImpl
StackMap stack: java.lang.InterruptedException
7: pop
8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadIsReading:Z
istore 1
9: iload 1
ifne 21
10: aload 2
monitorexit
11: iconst_1
anewarray java.lang.Object
dup
iconst_0
12: ldc "NonBlockingReader shutdown"
aastore
invokestatic jdk.internal.org.jline.utils.Log.debug:([Ljava/lang/Object;)V
13: aload 0
dup
astore 6
monitorenter
14: aload 0
aconst_null
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.thread:Ljava/lang/Thread;
15: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadIsReading:Z
16: aload 6
monitorexit
17: goto 20
StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl int jdk.internal.org.jline.utils.NonBlockingReaderImpl top top top jdk.internal.org.jline.utils.NonBlockingReaderImpl
StackMap stack: java.lang.Throwable
18: aload 6
monitorexit
19: athrow
StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl int jdk.internal.org.jline.utils.NonBlockingReaderImpl
StackMap stack:
20: return
21: StackMap locals:
StackMap stack:
aload 2
monitorexit
22: goto 25
end local 1 StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl top jdk.internal.org.jline.utils.NonBlockingReaderImpl
StackMap stack: java.lang.Throwable
23: aload 2
monitorexit
24: athrow
start local 1 25: StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl int
StackMap stack:
bipush -2
istore 2
start local 2 26: aconst_null
astore 3
start local 3 27: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.in:Ljava/io/Reader;
invokevirtual java.io.Reader.read:()I
istore 2
28: goto 31
StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl int int java.io.IOException
StackMap stack: java.io.IOException
29: astore 4
start local 4 30: aload 4
astore 3
end local 4 31: StackMap locals:
StackMap stack:
aload 0
dup
astore 4
monitorenter
32: aload 0
aload 3
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.exception:Ljava/io/IOException;
33: aload 0
iload 2
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.ch:I
34: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadIsReading:Z
35: aload 0
invokevirtual java.lang.Object.notify:()V
36: aload 4
monitorexit
37: goto 2
StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl int int java.io.IOException jdk.internal.org.jline.utils.NonBlockingReaderImpl
StackMap stack: java.lang.Throwable
38: aload 4
monitorexit
39: athrow
end local 3 end local 2 end local 1 40: StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl
StackMap stack: java.lang.Throwable
astore 2
start local 2 41: iconst_2
anewarray java.lang.Object
dup
iconst_0
42: ldc "Error in NonBlockingReader thread"
aastore
dup
iconst_1
aload 2
aastore
invokestatic jdk.internal.org.jline.utils.Log.warn:([Ljava/lang/Object;)V
end local 2 43: iconst_1
anewarray java.lang.Object
dup
iconst_0
44: ldc "NonBlockingReader shutdown"
aastore
invokestatic jdk.internal.org.jline.utils.Log.debug:([Ljava/lang/Object;)V
45: aload 0
dup
astore 6
monitorenter
46: aload 0
aconst_null
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.thread:Ljava/lang/Thread;
47: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadIsReading:Z
48: aload 6
monitorexit
49: goto 62
StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl top top top top top jdk.internal.org.jline.utils.NonBlockingReaderImpl
StackMap stack: java.lang.Throwable
50: aload 6
monitorexit
51: athrow
52: StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl
StackMap stack: java.lang.Throwable
astore 5
iconst_1
anewarray java.lang.Object
dup
iconst_0
53: ldc "NonBlockingReader shutdown"
aastore
invokestatic jdk.internal.org.jline.utils.Log.debug:([Ljava/lang/Object;)V
54: aload 0
dup
astore 6
monitorenter
55: aload 0
aconst_null
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.thread:Ljava/lang/Thread;
56: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingReaderImpl.threadIsReading:Z
57: aload 6
monitorexit
58: goto 61
StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl top top top top java.lang.Throwable jdk.internal.org.jline.utils.NonBlockingReaderImpl
StackMap stack: java.lang.Throwable
59: aload 6
monitorexit
60: athrow
61: StackMap locals:
StackMap stack:
aload 5
athrow
StackMap locals: jdk.internal.org.jline.utils.NonBlockingReaderImpl
StackMap stack:
62: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 this Ljdk/internal/org/jline/utils/NonBlockingReaderImpl;
4 23 1 needToRead Z
25 40 1 needToRead Z
26 40 2 charRead I
27 40 3 failure Ljava/io/IOException;
30 31 4 e Ljava/io/IOException;
41 43 2 t Ljava/lang/Throwable;
Exception table:
from to target type
4 6 7 Class java.lang.InterruptedException
14 17 18 any
18 19 18 any
3 11 23 any
21 22 23 any
23 24 23 any
27 28 29 Class java.io.IOException
32 37 38 any
38 39 38 any
2 11 40 Class java.lang.Throwable
21 40 40 Class java.lang.Throwable
46 49 50 any
50 51 50 any
2 11 52 any
21 43 52 any
55 58 59 any
59 60 59 any
public synchronized void clear();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.org.jline.utils.NonBlockingReaderImpl.read:()I
pop
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.org.jline.utils.NonBlockingReaderImpl.ready:()Z
ifne 1
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/org/jline/utils/NonBlockingReaderImpl;
Exceptions:
throws java.io.IOException
}
SourceFile: "NonBlockingReaderImpl.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles