public class jdk.internal.org.jline.utils.NonBlockingInputStreamImpl extends jdk.internal.org.jline.utils.NonBlockingInputStream
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
super_class: jdk.internal.org.jline.utils.NonBlockingInputStream
{
private java.io.InputStream in;
descriptor: Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
private int b;
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/NonBlockingInputStreamImpl;
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.NonBlockingInputStreamImpl.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String, java.io.InputStream);
descriptor: (Ljava/lang/String;Ljava/io/InputStream;)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.NonBlockingInputStream.<init>:()V
1: aload 0
bipush -2
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.b:I
2: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.threadIsReading:Z
3: aload 0
aconst_null
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.exception:Ljava/io/IOException;
4: aload 0
ldc 60000
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.threadDelay:J
5: aload 0
aload 2
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.in:Ljava/io/InputStream;
6: aload 0
aload 1
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.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/NonBlockingInputStreamImpl;
0 8 1 name Ljava/lang/String;
0 8 2 in Ljava/io/InputStream;
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.NonBlockingInputStreamImpl.thread:Ljava/lang/Thread;
ifnonnull 5
1: aload 0
new java.lang.Thread
dup
aload 0
invokedynamic run(Ljdk/internal/org/jline/utils/NonBlockingInputStreamImpl;)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/NonBlockingInputStreamImpl.run()V (7)
()V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.thread:Ljava/lang/Thread;
2: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.thread:Ljava/lang/Thread;
new java.lang.StringBuilder
dup
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.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.NonBlockingInputStreamImpl.thread:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
4: aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.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/NonBlockingInputStreamImpl;
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.NonBlockingInputStreamImpl.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/NonBlockingInputStreamImpl;
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.NonBlockingInputStreamImpl.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
1: aload 0
invokevirtual jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.shutdown:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/org/jline/utils/NonBlockingInputStreamImpl;
Exceptions:
throws java.io.IOException
public synchronized int read(long, boolean);
descriptor: (JZ)I
flags: (0x0021) ACC_PUBLIC, 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.NonBlockingInputStreamImpl.exception:Ljava/io/IOException;
ifnull 6
1: getstatic jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.b: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.NonBlockingInputStreamImpl.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.NonBlockingInputStreamImpl.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.NonBlockingInputStreamImpl.b:I
iconst_m1
if_icmplt 8
7: getstatic jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.$assertionsDisabled:Z
ifne 37
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.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.NonBlockingInputStreamImpl.threadIsReading:Z
ifne 11
9: aload 0
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.b:I
10: goto 37
11: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.threadIsReading:Z
ifne 15
12: aload 0
iconst_1
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.threadIsReading:Z
13: aload 0
invokevirtual jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.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.NonBlockingInputStreamImpl.exception:Ljava/io/IOException;
end local 7 26: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.exception:Ljava/io/IOException;
ifnull 32
27: getstatic jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.$assertionsDisabled:Z
ifne 28
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.b: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.NonBlockingInputStreamImpl.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.NonBlockingInputStreamImpl.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.NonBlockingInputStreamImpl.b:I
iconst_m1
if_icmplt 34
33: getstatic jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.$assertionsDisabled:Z
ifne 37
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.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.NonBlockingInputStreamImpl.b:I
istore 4
start local 4 38: iload 3
ifne 40
39: aload 0
bipush -2
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.b: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/NonBlockingInputStreamImpl;
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 "NonBlockingInputStream 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.NonBlockingInputStreamImpl.threadIsReading:Z
istore 1
start local 1 4: iload 1
ifne 8
5: aload 0
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.threadDelay:J
invokevirtual java.lang.Object.wait:(J)V
6: goto 8
StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl int jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
StackMap stack: java.lang.InterruptedException
7: pop
8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.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 "NonBlockingInputStream 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.NonBlockingInputStreamImpl.thread:Ljava/lang/Thread;
15: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.threadIsReading:Z
16: aload 6
monitorexit
17: goto 20
StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl int jdk.internal.org.jline.utils.NonBlockingInputStreamImpl top top top jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
StackMap stack: java.lang.Throwable
18: aload 6
monitorexit
19: athrow
StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl int jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
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.NonBlockingInputStreamImpl top jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
StackMap stack: java.lang.Throwable
23: aload 2
monitorexit
24: athrow
start local 1 25: StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl 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.NonBlockingInputStreamImpl.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
istore 2
28: goto 31
StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl 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.NonBlockingInputStreamImpl.exception:Ljava/io/IOException;
33: aload 0
iload 2
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.b:I
34: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.threadIsReading:Z
35: aload 0
invokevirtual java.lang.Object.notify:()V
36: aload 4
monitorexit
37: goto 40
StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl int int java.io.IOException jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
StackMap stack: java.lang.Throwable
38: aload 4
monitorexit
39: athrow
40: StackMap locals:
StackMap stack:
iload 2
ifge 2
41: iconst_1
anewarray java.lang.Object
dup
iconst_0
42: ldc "NonBlockingInputStream shutdown"
aastore
invokestatic jdk.internal.org.jline.utils.Log.debug:([Ljava/lang/Object;)V
43: aload 0
dup
astore 6
monitorenter
44: aload 0
aconst_null
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.thread:Ljava/lang/Thread;
45: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.threadIsReading:Z
46: aload 6
monitorexit
47: goto 50
StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl int int java.io.IOException top top jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
StackMap stack: java.lang.Throwable
48: aload 6
monitorexit
49: athrow
50: StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl int int java.io.IOException
StackMap stack:
return
end local 3 end local 2 end local 1 51: StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
StackMap stack: java.lang.Throwable
astore 2
start local 2 52: iconst_2
anewarray java.lang.Object
dup
iconst_0
53: ldc "Error in NonBlockingInputStream thread"
aastore
dup
iconst_1
aload 2
aastore
invokestatic jdk.internal.org.jline.utils.Log.warn:([Ljava/lang/Object;)V
end local 2 54: iconst_1
anewarray java.lang.Object
dup
iconst_0
55: ldc "NonBlockingInputStream shutdown"
aastore
invokestatic jdk.internal.org.jline.utils.Log.debug:([Ljava/lang/Object;)V
56: aload 0
dup
astore 6
monitorenter
57: aload 0
aconst_null
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.thread:Ljava/lang/Thread;
58: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.threadIsReading:Z
59: aload 6
monitorexit
60: goto 73
StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl top top top top top jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
StackMap stack: java.lang.Throwable
61: aload 6
monitorexit
62: athrow
63: StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
StackMap stack: java.lang.Throwable
astore 5
iconst_1
anewarray java.lang.Object
dup
iconst_0
64: ldc "NonBlockingInputStream shutdown"
aastore
invokestatic jdk.internal.org.jline.utils.Log.debug:([Ljava/lang/Object;)V
65: aload 0
dup
astore 6
monitorenter
66: aload 0
aconst_null
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.thread:Ljava/lang/Thread;
67: aload 0
iconst_0
putfield jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.threadIsReading:Z
68: aload 6
monitorexit
69: goto 72
StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl top top top top java.lang.Throwable jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
StackMap stack: java.lang.Throwable
70: aload 6
monitorexit
71: athrow
72: StackMap locals:
StackMap stack:
aload 5
athrow
StackMap locals: jdk.internal.org.jline.utils.NonBlockingInputStreamImpl
StackMap stack:
73: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 74 0 this Ljdk/internal/org/jline/utils/NonBlockingInputStreamImpl;
4 23 1 needToRead Z
25 51 1 needToRead Z
26 51 2 byteRead I
27 51 3 failure Ljava/io/IOException;
30 31 4 e Ljava/io/IOException;
52 54 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
44 47 48 any
48 49 48 any
2 11 51 Class java.lang.Throwable
21 41 51 Class java.lang.Throwable
57 60 61 any
61 62 61 any
2 11 63 any
21 41 63 any
51 54 63 any
66 69 70 any
70 71 70 any
}
SourceFile: "NonBlockingInputStreamImpl.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles