public class org.eclipse.core.internal.jobs.InternalWorker extends java.lang.Thread
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.core.internal.jobs.InternalWorker
super_class: java.lang.Thread
{
private final org.eclipse.core.internal.jobs.JobManager manager;
descriptor: Lorg/eclipse/core/internal/jobs/JobManager;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean canceled;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
void <init>(org.eclipse.core.internal.jobs.JobManager);
descriptor: (Lorg/eclipse/core/internal/jobs/JobManager;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "Worker-JM"
invokespecial java.lang.Thread.<init>:(Ljava/lang/String;)V
1: aload 0
aload 1
putfield org.eclipse.core.internal.jobs.InternalWorker.manager:Lorg/eclipse/core/internal/jobs/JobManager;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/core/internal/jobs/InternalWorker;
0 3 1 manager Lorg/eclipse/core/internal/jobs/JobManager;
MethodParameters:
Name Flags
manager
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield org.eclipse.core.internal.jobs.InternalWorker.manager:Lorg/eclipse/core/internal/jobs/JobManager;
getfield org.eclipse.core.internal.jobs.JobManager.monitorStack:Ljava/util/List;
dup
astore 2
monitorenter
2: goto 21
3: StackMap locals: int java.util.List
StackMap stack:
aload 0
getfield org.eclipse.core.internal.jobs.InternalWorker.manager:Lorg/eclipse/core/internal/jobs/JobManager;
getfield org.eclipse.core.internal.jobs.JobManager.monitorStack:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 6
4: iconst_0
istore 1
5: goto 7
6: StackMap locals:
StackMap stack:
sipush 250
istore 1
7: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 8: goto 17
9: StackMap locals: int
StackMap stack:
aload 0
getfield org.eclipse.core.internal.jobs.InternalWorker.manager:Lorg/eclipse/core/internal/jobs/JobManager;
getfield org.eclipse.core.internal.jobs.JobManager.monitorStack:Ljava/util/List;
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 4
start local 4 10: aload 4
iconst_1
aaload
checkcast org.eclipse.core.runtime.IProgressMonitor
astore 5
start local 5 11: aload 5
invokeinterface org.eclipse.core.runtime.IProgressMonitor.isCanceled:()Z
ifeq 16
12: aload 4
iconst_0
aaload
checkcast org.eclipse.core.runtime.jobs.Job
astore 6
start local 6 13: aload 6
invokevirtual org.eclipse.core.runtime.jobs.Job.getThread:()Ljava/lang/Thread;
astore 7
start local 7 14: aload 7
ifnull 16
15: aload 7
invokevirtual java.lang.Thread.interrupt:()V
end local 7 end local 6 end local 5 end local 4 16: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
17: iload 3
aload 0
getfield org.eclipse.core.internal.jobs.InternalWorker.manager:Lorg/eclipse/core/internal/jobs/JobManager;
getfield org.eclipse.core.internal.jobs.JobManager.monitorStack:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 9
end local 3 18: aload 0
getfield org.eclipse.core.internal.jobs.InternalWorker.manager:Lorg/eclipse/core/internal/jobs/JobManager;
getfield org.eclipse.core.internal.jobs.JobManager.monitorStack:Ljava/util/List;
iload 1
i2l
invokevirtual java.lang.Object.wait:(J)V
19: goto 21
StackMap locals: org.eclipse.core.internal.jobs.InternalWorker int java.util.List
StackMap stack: java.lang.InterruptedException
20: pop
21: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.core.internal.jobs.InternalWorker.canceled:Z
ifeq 3
22: aload 2
monitorexit
23: goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
24: aload 2
monitorexit
25: athrow
26: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/eclipse/core/internal/jobs/InternalWorker;
1 27 1 timeout I
8 18 3 i I
10 16 4 o [Ljava/lang/Object;
11 16 5 monitor Lorg/eclipse/core/runtime/IProgressMonitor;
13 16 6 job Lorg/eclipse/core/runtime/jobs/Job;
14 16 7 t Ljava/lang/Thread;
Exception table:
from to target type
18 19 20 Class java.lang.InterruptedException
2 23 24 any
24 25 24 any
void cancel();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.eclipse.core.internal.jobs.InternalWorker.manager:Lorg/eclipse/core/internal/jobs/JobManager;
getfield org.eclipse.core.internal.jobs.JobManager.monitorStack:Ljava/util/List;
dup
astore 1
monitorenter
1: aload 0
iconst_1
putfield org.eclipse.core.internal.jobs.InternalWorker.canceled:Z
2: aload 0
getfield org.eclipse.core.internal.jobs.InternalWorker.manager:Lorg/eclipse/core/internal/jobs/JobManager;
getfield org.eclipse.core.internal.jobs.JobManager.monitorStack:Ljava/util/List;
invokevirtual java.lang.Object.notifyAll:()V
3: aload 1
monitorexit
4: goto 7
StackMap locals: org.eclipse.core.internal.jobs.InternalWorker java.util.List
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/core/internal/jobs/InternalWorker;
Exception table:
from to target type
1 4 5 any
5 6 5 any
}
SourceFile: "InternalWorker.java"