class sun.java2d.opengl.OGLRenderQueue$QueueFlusher implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.java2d.opengl.OGLRenderQueue$QueueFlusher
super_class: java.lang.Object
{
private boolean needsFlush;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.Runnable task;
descriptor: Ljava/lang/Runnable;
flags: (0x0002) ACC_PRIVATE
private java.lang.Error error;
descriptor: Ljava/lang/Error;
flags: (0x0002) ACC_PRIVATE
private final java.lang.Thread thread;
descriptor: Ljava/lang/Thread;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final sun.java2d.opengl.OGLRenderQueue this$0;
descriptor: Lsun/java2d/opengl/OGLRenderQueue;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(sun.java2d.opengl.OGLRenderQueue);
descriptor: (Lsun/java2d/opengl/OGLRenderQueue;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=3, args_size=2
start local 0 0: aload 0
aload 1
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.this$0:Lsun/java2d/opengl/OGLRenderQueue;
aload 0
invokespecial java.lang.Object.<init>:()V
1: ldc "Java2D Queue Flusher"
astore 2
start local 2 2: aload 0
new java.lang.Thread
dup
invokestatic sun.awt.util.ThreadGroupUtils.getRootThreadGroup:()Ljava/lang/ThreadGroup;
3: aload 0
aload 2
lconst_0
iconst_0
invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;JZ)V
4: putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.thread:Ljava/lang/Thread;
5: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.thread:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
6: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.thread:Ljava/lang/Thread;
bipush 10
invokevirtual java.lang.Thread.setPriority:(I)V
7: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
8: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/java2d/opengl/OGLRenderQueue$QueueFlusher;
2 9 2 name Ljava/lang/String;
MethodParameters:
Name Flags
this$0 final
public synchronized void flushNow();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.needsFlush:Z
1: aload 0
invokevirtual java.lang.Object.notify:()V
2: goto 6
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
4: goto 6
StackMap locals:
StackMap stack: java.lang.InterruptedException
5: pop
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.needsFlush:Z
ifne 3
7: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.error:Ljava/lang/Error;
ifnull 9
8: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.error:Ljava/lang/Error;
athrow
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/java2d/opengl/OGLRenderQueue$QueueFlusher;
Exception table:
from to target type
3 4 5 Class java.lang.InterruptedException
public synchronized void flushAndInvokeNow(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.task:Ljava/lang/Runnable;
1: aload 0
invokevirtual sun.java2d.opengl.OGLRenderQueue$QueueFlusher.flushNow:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/java2d/opengl/OGLRenderQueue$QueueFlusher;
0 3 1 task Ljava/lang/Runnable;
MethodParameters:
Name Flags
task
public synchronized void run();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 11
2: StackMap locals: int
StackMap stack:
iconst_0
istore 1
3: aload 0
ldc 100
invokevirtual java.lang.Object.wait:(J)V
4: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.needsFlush:Z
ifne 11
aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.this$0:Lsun/java2d/opengl/OGLRenderQueue;
invokevirtual sun.java2d.opengl.OGLRenderQueue.tryLock:()Z
dup
istore 1
ifeq 11
5: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.this$0:Lsun/java2d/opengl/OGLRenderQueue;
invokestatic sun.java2d.opengl.OGLRenderQueue.access$0:(Lsun/java2d/opengl/OGLRenderQueue;)Lsun/java2d/pipe/RenderBuffer;
invokevirtual sun.java2d.pipe.RenderBuffer.position:()I
ifle 8
6: aload 0
iconst_1
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.needsFlush:Z
7: goto 11
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.this$0:Lsun/java2d/opengl/OGLRenderQueue;
invokevirtual sun.java2d.opengl.OGLRenderQueue.unlock:()V
9: goto 11
StackMap locals:
StackMap stack: java.lang.InterruptedException
10: pop
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.needsFlush:Z
ifeq 2
12: aload 0
aconst_null
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.error:Ljava/lang/Error;
13: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.this$0:Lsun/java2d/opengl/OGLRenderQueue;
invokevirtual sun.java2d.opengl.OGLRenderQueue.flushBuffer:()V
14: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.task:Ljava/lang/Runnable;
ifnull 39
15: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.task:Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
16: goto 39
StackMap locals:
StackMap stack: java.lang.Error
17: astore 2
start local 2 18: aload 0
aload 2
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.error:Ljava/lang/Error;
end local 2 19: iload 1
ifeq 21
20: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.this$0:Lsun/java2d/opengl/OGLRenderQueue;
invokevirtual sun.java2d.opengl.OGLRenderQueue.unlock:()V
21: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.task:Ljava/lang/Runnable;
22: aload 0
iconst_0
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.needsFlush:Z
23: aload 0
invokevirtual java.lang.Object.notify:()V
goto 44
24: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 25: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "exception in QueueFlusher:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
26: aload 2
invokevirtual java.lang.Exception.printStackTrace:()V
end local 2 27: iload 1
ifeq 29
28: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.this$0:Lsun/java2d/opengl/OGLRenderQueue;
invokevirtual sun.java2d.opengl.OGLRenderQueue.unlock:()V
29: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.task:Ljava/lang/Runnable;
30: aload 0
iconst_0
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.needsFlush:Z
31: aload 0
invokevirtual java.lang.Object.notify:()V
goto 44
32: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
33: iload 1
ifeq 35
34: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.this$0:Lsun/java2d/opengl/OGLRenderQueue;
invokevirtual sun.java2d.opengl.OGLRenderQueue.unlock:()V
35: StackMap locals: sun.java2d.opengl.OGLRenderQueue$QueueFlusher int top java.lang.Throwable
StackMap stack:
aload 0
aconst_null
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.task:Ljava/lang/Runnable;
36: aload 0
iconst_0
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.needsFlush:Z
37: aload 0
invokevirtual java.lang.Object.notify:()V
38: aload 3
athrow
39: StackMap locals: sun.java2d.opengl.OGLRenderQueue$QueueFlusher int
StackMap stack:
iload 1
ifeq 41
40: aload 0
getfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.this$0:Lsun/java2d/opengl/OGLRenderQueue;
invokevirtual sun.java2d.opengl.OGLRenderQueue.unlock:()V
41: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.task:Ljava/lang/Runnable;
42: aload 0
iconst_0
putfield sun.java2d.opengl.OGLRenderQueue$QueueFlusher.needsFlush:Z
43: aload 0
invokevirtual java.lang.Object.notify:()V
44: StackMap locals:
StackMap stack:
goto 11
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lsun/java2d/opengl/OGLRenderQueue$QueueFlusher;
1 45 1 timedOut Z
18 19 2 e Ljava/lang/Error;
25 27 2 x Ljava/lang/Exception;
Exception table:
from to target type
2 9 10 Class java.lang.InterruptedException
12 16 17 Class java.lang.Error
12 16 24 Class java.lang.Exception
12 19 32 any
24 27 32 any
}
SourceFile: "OGLRenderQueue.java"
NestHost: sun.java2d.opengl.OGLRenderQueue
InnerClasses:
private QueueFlusher = sun.java2d.opengl.OGLRenderQueue$QueueFlusher of sun.java2d.opengl.OGLRenderQueue