class com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer extends java.lang.Thread
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer
super_class: java.lang.Thread
{
private int received;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.util.concurrent.BlockingQueue<org.graalvm.polyglot.Value> queue;
descriptor: Ljava/util/concurrent/BlockingQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/BlockingQueue<Lorg/graalvm/polyglot/Value;>;
final com.oracle.truffle.js.test.threading.ProducerConsumerTest this$0;
descriptor: Lcom/oracle/truffle/js/test/threading/ProducerConsumerTest;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(java.util.concurrent.BlockingQueue<org.graalvm.polyglot.Value>);
descriptor: (Lcom/oracle/truffle/js/test/threading/ProducerConsumerTest;Ljava/util/concurrent/BlockingQueue;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer this
start local 2 // java.util.concurrent.BlockingQueue queue
0: .line 111
aload 0 /* this */
aload 1
putfield com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer.this$0:Lcom/oracle/truffle/js/test/threading/ProducerConsumerTest;
aload 0 /* this */
invokespecial java.lang.Thread.<init>:()V
1: .line 112
aload 0 /* this */
aload 2 /* queue */
putfield com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer.queue:Ljava/util/concurrent/BlockingQueue;
2: .line 113
return
end local 2 // java.util.concurrent.BlockingQueue queue
end local 0 // com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/test/threading/ProducerConsumerTest$Consumer;
0 3 2 queue Ljava/util/concurrent/BlockingQueue<Lorg/graalvm/polyglot/Value;>;
Signature: (Ljava/util/concurrent/BlockingQueue<Lorg/graalvm/polyglot/Value;>;)V
MethodParameters:
Name Flags
this$0 final
queue
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 // com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer this
0: .line 117
iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.threading.TestUtil.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
getstatic org.graalvm.polyglot.HostAccess.ALL:Lorg/graalvm/polyglot/HostAccess;
invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 1 /* cx */
start local 1 // org.graalvm.polyglot.Context cx
1: .line 118
aload 1 /* cx */
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "queue"
aload 0 /* this */
getfield com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer.queue:Ljava/util/concurrent/BlockingQueue;
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
2: .line 120
aload 0 /* this */
aload 1 /* cx */
ldc "js"
ldc "var received = 0;do { var str = queue.take(); received++; var m = JSON.parse(str);} while (m.message != 'byebye');received;"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
3: .line 126
invokevirtual org.graalvm.polyglot.Value.asInt:()I
4: .line 120
putfield com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer.received:I
5: .line 127
goto 9
StackMap locals: com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
6: astore 2
7: .line 128
aload 1 /* cx */
invokevirtual org.graalvm.polyglot.Context.close:()V
8: .line 129
aload 2
athrow
9: .line 128
StackMap locals:
StackMap stack:
aload 1 /* cx */
invokevirtual org.graalvm.polyglot.Context.close:()V
10: .line 130
return
end local 1 // org.graalvm.polyglot.Context cx
end local 0 // com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/js/test/threading/ProducerConsumerTest$Consumer;
1 11 1 cx Lorg/graalvm/polyglot/Context;
Exception table:
from to target type
2 6 6 any
}
SourceFile: "ProducerConsumerTest.java"
NestHost: com.oracle.truffle.js.test.threading.ProducerConsumerTest
InnerClasses:
Consumer = com.oracle.truffle.js.test.threading.ProducerConsumerTest$Consumer of com.oracle.truffle.js.test.threading.ProducerConsumerTest
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context