class purejavacomm.PureJavaSerialPort$3 implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: purejavacomm.PureJavaSerialPort$3
super_class: java.lang.Object
{
final purejavacomm.PureJavaSerialPort this$0;
descriptor: Lpurejavacomm/PureJavaSerialPort;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(purejavacomm.PureJavaSerialPort);
descriptor: (Lpurejavacomm/PureJavaSerialPort;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lpurejavacomm/PureJavaSerialPort$3;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=14, args_size=1
start local 0 0: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
iconst_1
putfield purejavacomm.PureJavaSerialPort.m_ThreadRunning:Z
1: ldc "purejavacomm.pollperiod"
bipush 10
invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
istore 1
start local 1 2: aconst_null
astore 2
start local 2 3: aconst_null
astore 3
start local 3 4: aconst_null
astore 4
start local 4 5: aconst_null
astore 5
start local 5 6: aconst_null
astore 6
start local 6 7: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.USE_POLL:Z
ifeq 13
8: iconst_2
anewarray jtermios.Pollfd
dup
iconst_0
new jtermios.Pollfd
dup
invokespecial jtermios.Pollfd.<init>:()V
aastore
dup
iconst_1
new jtermios.Pollfd
dup
invokespecial jtermios.Pollfd.<init>:()V
aastore
astore 5
9: iconst_1
newarray 8
astore 6
10: aload 5
iconst_0
aaload
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
putfield jtermios.Pollfd.fd:I
11: aload 5
iconst_1
aaload
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
putfield jtermios.Pollfd.fd:I
12: goto 94
13: StackMap locals: purejavacomm.PureJavaSerialPort$3 int jtermios.TimeVal jtermios.JTermios$FDSet jtermios.JTermios$FDSet jtermios.Pollfd[] byte[]
StackMap stack:
invokestatic jtermios.JTermios.newFDSet:()Ljtermios/JTermios$FDSet;
astore 3
14: invokestatic jtermios.JTermios.newFDSet:()Ljtermios/JTermios$FDSet;
astore 4
15: new jtermios.TimeVal
dup
invokespecial jtermios.TimeVal.<init>:()V
astore 2
16: iload 1
sipush 1000
imul
istore 7
start local 7 17: aload 2
iload 7
ldc 1000000
idiv
i2l
putfield jtermios.TimeVal.tv_sec:J
18: aload 2
iload 7
i2l
aload 2
getfield jtermios.TimeVal.tv_sec:J
ldc 1000000
lmul
lsub
putfield jtermios.TimeVal.tv_usec:J
end local 7 19: goto 94
20: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_NotifyOnDataAvailable:Z
ifeq 21
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_DataAvailableNotified:Z
ifne 21
iconst_1
goto 22
StackMap locals:
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: istore 7
start local 7 23: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_NotifyOnOutputEmpty:Z
ifeq 24
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_OutputEmptyNotified:Z
ifne 24
iconst_1
goto 25
StackMap locals: int
StackMap stack:
24: iconst_0
StackMap locals:
StackMap stack: int
25: istore 8
start local 8 26: iconst_0
istore 9
start local 9 27: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_NotifyOnCTS:Z
ifne 28
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_NotifyOnDSR:Z
ifne 28
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_NotifyOnRI:Z
ifne 28
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_NotifyOnCD:Z
ifne 28
iconst_0
goto 29
StackMap locals: int int
StackMap stack:
28: iconst_1
StackMap locals:
StackMap stack: int
29: istore 10
start local 10 30: iload 7
ifne 31
iload 8
ifne 31
iload 10
ifne 88
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_HaveNudgePipe:Z
ifeq 88
31: StackMap locals: int
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.USE_POLL:Z
ifeq 63
32: iconst_0
istore 11
start local 11 33: iload 7
ifeq 35
34: iload 11
getstatic jtermios.JTermios.POLLIN:S
ior
i2s
istore 11
35: StackMap locals: int
StackMap stack:
iload 8
ifeq 37
36: iload 11
getstatic jtermios.JTermios.POLLOUT:S
ior
i2s
istore 11
37: StackMap locals:
StackMap stack:
aload 5
iconst_0
aaload
iload 11
putfield jtermios.Pollfd.events:S
38: aload 5
iconst_1
aaload
getstatic jtermios.JTermios.POLLIN:S
putfield jtermios.Pollfd.events:S
39: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_HaveNudgePipe:Z
ifeq 41
40: aload 5
iconst_2
iload 1
invokestatic jtermios.JTermios.poll:([Ljtermios/Pollfd;II)I
istore 9
goto 42
41: StackMap locals:
StackMap stack:
aload 5
iconst_1
iload 1
invokestatic jtermios.JTermios.poll:([Ljtermios/Pollfd;II)I
istore 9
42: StackMap locals:
StackMap stack:
aload 5
iconst_1
aaload
getfield jtermios.Pollfd.revents:S
istore 12
start local 12 43: iload 12
getstatic jtermios.JTermios.POLLNVAL:S
iand
ifeq 48
44: getstatic jtermios.JTermios$JTermiosLogging.log:Z
ifeq 45
iconst_1
ldc "poll() returned POLLNVAL, errno %d\n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
invokestatic jtermios.JTermios.errno:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
ifeq 45
iconst_1
goto 46
StackMap locals: int
StackMap stack:
45: iconst_0
StackMap locals:
StackMap stack: int
46: putstatic jtermios.JTermios$JTermiosLogging.log:Z
47: goto 101
48: StackMap locals:
StackMap stack:
iload 12
getstatic jtermios.JTermios.POLLIN:S
iand
ifeq 50
49: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
aload 6
iconst_1
invokestatic jtermios.JTermios.read:(I[BI)I
pop
50: StackMap locals:
StackMap stack:
aload 5
iconst_0
aaload
getfield jtermios.Pollfd.revents:S
istore 12
51: iload 12
getstatic jtermios.JTermios.POLLNVAL:S
iand
ifeq 56
52: getstatic jtermios.JTermios$JTermiosLogging.log:Z
ifeq 53
iconst_1
ldc "poll() returned POLLNVAL, errno %d\n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
invokestatic jtermios.JTermios.errno:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
ifeq 53
iconst_1
goto 54
StackMap locals:
StackMap stack:
53: iconst_0
StackMap locals:
StackMap stack: int
54: putstatic jtermios.JTermios$JTermiosLogging.log:Z
55: goto 101
56: StackMap locals:
StackMap stack:
iload 7
ifeq 57
iload 12
getstatic jtermios.JTermios.POLLIN:S
iand
ifeq 57
iconst_1
goto 58
StackMap locals:
StackMap stack:
57: iconst_0
StackMap locals:
StackMap stack: int
58: istore 7
59: iload 8
ifeq 60
iload 12
getstatic jtermios.JTermios.POLLOUT:S
iand
ifeq 60
iconst_1
goto 61
StackMap locals:
StackMap stack:
60: iconst_0
StackMap locals:
StackMap stack: int
61: istore 8
end local 12 end local 11 62: goto 80
63: StackMap locals:
StackMap stack:
aload 3
invokestatic jtermios.JTermios.FD_ZERO:(Ljtermios/JTermios$FDSet;)V
64: aload 4
invokestatic jtermios.JTermios.FD_ZERO:(Ljtermios/JTermios$FDSet;)V
65: iload 7
ifeq 67
66: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 3
invokestatic jtermios.JTermios.FD_SET:(ILjtermios/JTermios$FDSet;)V
67: StackMap locals:
StackMap stack:
iload 8
ifeq 69
68: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 4
invokestatic jtermios.JTermios.FD_SET:(ILjtermios/JTermios$FDSet;)V
69: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_HaveNudgePipe:Z
ifeq 71
70: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
aload 3
invokestatic jtermios.JTermios.FD_SET:(ILjtermios/JTermios$FDSet;)V
71: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
iconst_1
iadd
aload 3
aload 4
aconst_null
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_HaveNudgePipe:Z
ifeq 72
aconst_null
goto 73
StackMap locals: purejavacomm.PureJavaSerialPort$3 int jtermios.TimeVal jtermios.JTermios$FDSet jtermios.JTermios$FDSet jtermios.Pollfd[] byte[] int int int int
StackMap stack: int jtermios.JTermios$FDSet jtermios.JTermios$FDSet null
72: aload 2
StackMap locals: purejavacomm.PureJavaSerialPort$3 int jtermios.TimeVal jtermios.JTermios$FDSet jtermios.JTermios$FDSet jtermios.Pollfd[] byte[] int int int int
StackMap stack: int jtermios.JTermios$FDSet jtermios.JTermios$FDSet null jtermios.TimeVal
73: invokestatic jtermios.JTermios.select:(ILjtermios/JTermios$FDSet;Ljtermios/JTermios$FDSet;Ljtermios/JTermios$FDSet;Ljtermios/TimeVal;)I
istore 9
74: iload 7
ifeq 75
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 3
invokestatic jtermios.JTermios.FD_ISSET:(ILjtermios/JTermios$FDSet;)Z
ifeq 75
iconst_1
goto 76
StackMap locals:
StackMap stack:
75: iconst_0
StackMap locals:
StackMap stack: int
76: istore 7
77: iload 8
ifeq 78
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 4
invokestatic jtermios.JTermios.FD_ISSET:(ILjtermios/JTermios$FDSet;)Z
ifeq 78
iconst_1
goto 79
StackMap locals:
StackMap stack:
78: iconst_0
StackMap locals:
StackMap stack: int
79: istore 8
80: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
ifge 82
81: goto 101
82: StackMap locals:
StackMap stack:
iload 9
ifge 89
83: getstatic jtermios.JTermios$JTermiosLogging.log:Z
ifeq 84
iconst_1
ldc "select() or poll() returned %d, errno %d\n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 9
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
invokestatic jtermios.JTermios.errno:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
ifeq 84
iconst_1
goto 85
StackMap locals:
StackMap stack:
84: iconst_0
StackMap locals:
StackMap stack: int
85: putstatic jtermios.JTermios$JTermiosLogging.log:Z
86: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
invokevirtual purejavacomm.PureJavaSerialPort.close:()V
87: goto 101
88: StackMap locals:
StackMap stack:
iload 1
i2l
invokestatic java.lang.Thread.sleep:(J)V
89: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_EventListener:Lpurejavacomm/SerialPortEventListener;
ifnull 94
90: iload 7
ifne 91
iload 8
ifeq 92
91: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
iload 7
iload 8
invokevirtual purejavacomm.PureJavaSerialPort.sendDataEvents:(ZZ)V
92: StackMap locals:
StackMap stack:
iload 10
ifeq 94
93: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
invokevirtual purejavacomm.PureJavaSerialPort.sendNonDataEvents:()V
end local 10 end local 9 end local 8 end local 7 94: StackMap locals: purejavacomm.PureJavaSerialPort$3 int jtermios.TimeVal jtermios.JTermios$FDSet jtermios.JTermios$FDSet jtermios.Pollfd[] byte[]
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
ifge 20
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 95: goto 101
StackMap locals: purejavacomm.PureJavaSerialPort$3
StackMap stack: java.lang.InterruptedException
96: pop
97: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
iconst_0
putfield purejavacomm.PureJavaSerialPort.m_ThreadRunning:Z
goto 102
98: StackMap locals:
StackMap stack: java.lang.Throwable
astore 13
99: aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
iconst_0
putfield purejavacomm.PureJavaSerialPort.m_ThreadRunning:Z
100: aload 13
athrow
101: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$3.this$0:Lpurejavacomm/PureJavaSerialPort;
iconst_0
putfield purejavacomm.PureJavaSerialPort.m_ThreadRunning:Z
102: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 103 0 this Lpurejavacomm/PureJavaSerialPort$3;
2 95 1 TIMEOUT I
3 95 2 timeout Ljtermios/TimeVal;
4 95 3 rset Ljtermios/JTermios$FDSet;
5 95 4 wset Ljtermios/JTermios$FDSet;
6 95 5 pollfd [Ljtermios/Pollfd;
7 95 6 nudge [B
17 19 7 t I
23 94 7 read Z
26 94 8 write Z
27 94 9 n I
30 94 10 pollCtrlLines Z
33 62 11 e S
43 62 12 re I
Exception table:
from to target type
0 95 96 Class java.lang.InterruptedException
0 97 98 any
}
SourceFile: "PureJavaSerialPort.java"
EnclosingMethod: purejavacomm.PureJavaSerialPort.<init>:(Ljava/lang/String;I)V
NestHost: purejavacomm.PureJavaSerialPort
InnerClasses:
public abstract FDSet = jtermios.JTermios$FDSet of jtermios.JTermios
public JTermiosLogging = jtermios.JTermios$JTermiosLogging of jtermios.JTermios
purejavacomm.PureJavaSerialPort$3